无法从“9.0.1”确定 java 版本

Could not determine java version from '9.0.1'

正在尝试将项目上传到 bintray,但出现错误:

Could not determine java version from '9.0.1'.

我读到它是一个等级错误并且在高版本中修复了,我试过了 将 gradle 版本更改为 4.2.1,但出现另一个错误:

Gradle sync failed: No such property: FOR_RUNTIME for class: org.gradle.api.attributes.Usage Consult IDE log for more details (Help | Show Log) (571ms)

Gradle 属性:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-all.zip

构建gradle项目

buildscript {
    ext.kotlin_version = '1.1.51'

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-beta7'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.novoda:bintray-release:0.5.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

此问题出现在低于 4.3 的 gradle 版本中,因此请将您的 gradle.properties 更新为 4.3 或更高版本:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-all.zip

为什么会出现这个错误?: 因为你的系统 JDK 与你的 android-studio JDK 版本不同。

因此,您的 JDK 应该相互兼容,按照这种方式您可以做到:

File -> Other settings -> Default project structure

您可以使用嵌入式 JDK 或使用您自己的。


此外,您可能与 terminal 有一些问题,这属于您的多个 JDK.

之间的冲突

我的解决方案是卸载 java 9 JDK.

我在 macOS 上遇到了这个问题,我通过以下方式解决了它:

去掉太新的javajdk

brew cask uninstall java

并安装旧版本

brew tap caskroom/versions
brew cask install java8

所有这些都是通过 Homebrew

处理的

您还应该删除 Java JDK。只是 运行 以下内容:

  1. cd /Library/Java/JavaVirtualMachines
  2. sudo rm -rf jdk1

现在检查在您的终端中输入 'java'。

有关更多参考资料,您可以在此处查看:https://www.howtogeek.com/230145/how-to-uninstall-java-on-mac-os-x/

刚刚尝试使用 Gradle 4.3 构建,反对 JDK 9.0.1 - 这可能在 Android Studio 中起作用(因为捆绑的 JDK 是旧版本),但在使用 Jenkins 2.89.2 构建时不起作用(它似乎不支持 JDK 9.0.1然而,字面意义上的抱怨 Could not determine java version from '9.0.1')。 bintray 也可以使用 Jenkins 构建,因为错误消息有些相同。

gradle.properties 中降级到 JDK 8 解决了我的问题:

org.gradle.java.home=/usr/java/jdk1.8.0_152

结合gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

只需要使用本地gradle分发 例如:在 IntelliJ 中转到 File->settings->Build,Execution,Deployment->Build Tools->Gradle 然后更新 "Use local gradle distribution",如图所示。

settings window

在我的例子中,错误是

Could not determine java version from '10'.

我转到 Unity 中的首选项(windows 中的编辑 > 首选项或 MAC 中的 Unity > 首选项)、外部工具、JDK 目录并更改了几个级别.我正在使用 JDK 10,但更改为 JDK 8 的文件夹,这解决了问题。

确保您在 JDK 下的文件可以访问。我遇到了同样的问题,因为我的进程由于代理问题无法访问我的 JDK 文件。然后我改变了我的 JDK 路径。成功了。