无法从“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 吗? @RajanikantDeshmukhPATH=$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 版本的主要内容,如果未能解决你的问题,请参考以下文章
如何修复错误:无法从“11.0.2”确定 java 版本。在特拉维斯?