无法从 '9.0.1' 确定Java版本。

49
尝试上传项目到 bintray,但出现错误:Could not determine java version from '9.0.1'. 据我所知,这是 gradle 的一个 bug,并且已在更高版本中修复。 我尝试将 gradle 版本更改为 4.2.1,但出现另一个错误:
Gradle 同步失败:类 org.gradle.api.attributes.Usage 中没有 FOR_RUNTIME 属性 Consult IDE 日志以获取更多详细信息 (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
}

展示 build.gradle(项目) - IntelliJ Amiya
@IntelliJAmiya done - no news
1
use gradle-3.3-all.zip - IntelliJ Amiya
{btsdaf} - IntelliJ Amiya
{btsdaf} - no news
I don't know. May be bug - IntelliJ Amiya
7个回答

36

这个问题出现在4.3以下的gradle版本中,所以请更新你的gradle.properties至4.3或以上:

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

为什么会出现这个错误?:因为您的系统上安装的 JDK 版本与您的 Android Studio 中使用的版本不同。

因此,您的 JDK 版本应该相互兼容。按照以下步骤操作即可解决:

文件 -> 其他设置 -> 默认项目结构

enter image description here

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


另外,您可能在使用 终端 时遇到了一些问题,这通常是由于多个 JDK 版本之间的冲突所致。

我采用的解决方法是卸载 Java 9 JDK


3
当我使用Java JDK 9和Gradle 4.1时,出现了这个错误。将Gradle版本切换到4.3解决了这个错误。 - vovahost
我通过更改gradle/wrapper/gradle-wrapper.properties文件来解决了这个问题。我使用的是IntellijIDEA/Android Studio。参考链接:https://developer.android.com/studio/releases/gradle-plugin.html - Gauss
我已经将Gradle 4.4.1的distributionUrl更改为https://services.gradle.org/distributions/gradle-4.4.1-bin.zip,但仍然出现错误。 - JesseBoyd
我使用了 distributionUrl=https\://services.gradle.org/distributions/gradle-5.4-bin.zip,问题已经解决了。 - Eugene Gr. Philippov

26

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

卸载过新的 Java JDK。

brew cask uninstall java

安装一个旧版本

brew tap caskroom/versions
brew cask install java8

所有这些都是通过Homebrew处理的。


我得到了这个错误:Error: Cask 'java8' is unavailable: No Cask with this name exists. - Paula Kristin
5
也许你需要先运行这个命令 brew tap caskroom/versions - E. Sundin
我在 Mac 上将我的 JAVA_HOME 设置为与 Android Studio 的 Java 位置相同,从而解决了这个问题。 - Paula Kristin
这个特定的错误已经按照 Paula 的建议解决了(指向 Android Studio JRE)。但是尝试从命令行升级或构建真的很痛苦!:( - Stephen McCormick
这是安装JDK的最快方法。 - waseefakhtar
显示剩余2条评论

8

1
难道没有另一种方法可以从Android Studio的Contents目录中使用Java吗? - aruke
@RajanikantDeshmukh PATH=$PATH:/opt/android-studio/jre/bin 对我有效。将其添加到您的.bashrc.profile文件中。根据您放置Android Studio文件的位置进行调整。 - datashaman

1
在我的情况下,错误是

无法从“10”确定Java版本。

我进入Unity的首选项(在Windows中为edit> preferences,在MAC中为Unity> preferences),然后选择外部工具,JDK目录并向上移动了几个级别。我之前使用的是JDK 10,但更改为JDK 8的文件夹后,问题得到解决。

0

只需要使用本地gradle分发

例如:在IntelliJ中,转到文件->设置->构建、执行、部署->构建工具->Gradle,然后根据图像更新“使用本地gradle分发”。

设置窗口


0

确保您的JDK文件可访问。我曾经遇到过同样的问题,因为我的进程由于代理问题无法访问我的JDK文件。然后我更改了我的JDK路径。它起作用了。


0

刚尝试使用Gradle 4.3和JDK 9.0.1构建 - 这可能在Android Studio中运行(因为捆绑的JDK是旧版本),但在使用Jenkins 2.89.2构建时不行(似乎还不支持JDK 9.0.1,字面上抱怨“无法从'9.0.1'确定Java版本”)。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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接