无法从“9.0.1”确定 java 版本

Posted

技术标签:

【中文标题】无法从“9.0.1”确定 java 版本【英文标题】:Could not determine java version from '9.0.1' 【发布时间】:2018-04-04 06:17:05 【问题描述】:

尝试将项目上传到bintray 并得到错误:

Could not determine java version from '9.0.1'.

我读到这是等级错误,它已在更高版本中修复,我试过了 将gradle 版本更改为4.2.1,但又报错:

Gradle 同步失败:没有这样的属性:类的 FOR_RUNTIME: org.gradle.api.attributes.Usage 查看 IDE 日志以获取更多详细信息 (帮助 | 显示日志)(571 毫秒)

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(项目) @IntelliJAmiya 完成 使用gradle-3.3-all.zip 降级版本tools.build:gradle:2.3.3 @IntelliJAmiya 我可以在不降级的情况下解决这个问题吗? 【参考方案1】:

这个问题是在低于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

【讨论】:

我在使用 Java JDK 9 和 Gradle 4.1 时遇到此错误。切换到 Gradle 4.3 版解决了错误。 我解决了在 gradle/wrapper/gradle-wrapper.properties 中进行更改的问题。我正在使用 IntellijIDEA/Android Studio。参考:developer.android.com/studio/releases/gradle-plugin.html 我的 Gradle 4.4.1 更改了 distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-bin.zip 并且仍然有错误。 我用了distributionUrl=https\://services.gradle.org/distributions/gradle-5.4-bin.zip,问题就解决了。【参考方案2】:

我在 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. @PaulaKristin 也许你需要先运行这个brew tap caskroom/versions 我找到了解决方案,方法是让我在 mac 上的 JAVA_HOME 与我的 android studio java 所在的位置相同,它解决了这个问题 这个特定错误已按照 Paula 的建议解决(指向 Android Studio JRE)。但是男孩升级或尝试从命令行构建是很痛苦的! :( @StephenMcCormick 老实说,这是一个 hacky 解决方案。您的意思是 这个特定错误 只能用 hacky AS JRE 方法解决 吗?措辞使答案是否有效有点不清楚。【参考方案3】:

您还应该删除 Java JDK。只需运行以下命令:

    cd /Library/Java/JavaVirtualMachines sudo rm -rf jdk1

现在检查在终端中输入“java”。

更多参考资料可以看这里:https://www.howtogeek.com/230145/how-to-uninstall-java-on-mac-os-x/

【讨论】:

难道没有其他方法可以使用 Android Studio Contents 目录中的 Java 吗? @RajanikantDeshmukh PATH=$PATH:/opt/android-studio/jre/bin 为我工作。将其添加到您的 .bashrc.profile。使其适应您放置 Android Studio 文件的任何位置。【参考方案4】:

在我的情况下,错误是

无法从 '10' 确定 java 版本。

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

【讨论】:

【参考方案5】:

刚刚尝试使用 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

【讨论】:

【参考方案6】:

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

settings window

【讨论】:

【参考方案7】:

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

【讨论】:

以上是关于无法从“9.0.1”确定 java 版本的主要内容,如果未能解决你的问题,请参考以下文章

无法从“15.0.1”确定 java 版本

Gradle:无法从“11.0.2”确定 java 版本

如何修复错误:无法从“11.0.2”确定 java 版本。在特拉维斯?

Flutter 2:无法确定捆绑的 Java 版本

错误:无法从“10.3”确定 PostgreSQL 版本 - Heroku 上的 Django

Flutter Doctor - 无法确定捆绑的 Java 版本