gpt4 book ai didi

JDK 1.8 或更高版本与 Cordova 的 Java 11 要求检查失败

转载 作者:行者123 更新时间:2023-12-03 03:07:09 26 4
gpt4 key购买 nike

当我在我的项目路径中运行 ````cordova run android``` 时,我得到

Android Studio project detected
cordova-android-support-gradle-release: Android platform: V7+
cordova-android-support-gradle-release: Wrote custom version '27.+' to /path/to/platforms/android/app/build.gradle
cordova-android-support-gradle-release: Wrote custom version '27.+' to /path/to/cordova-android-support-gradle-release/norsan-cordova-android-support-gradle-release.gradle
ANDROID_HOME=/usr/lib/android-sdk
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Requirements check failed for JDK 1.8 or greater

我的 Java 版本
$ java --version
openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.119.04)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.119.04, mixed mode, sharing)

我的 javac 版本
$ javac --version
javac 11.0.5

我的 Cordova 版本
$ cordova --version
9.0.0 (cordova-lib@9.0.1)

我的节点版本
$ node --version
v10.15.2

我的 Nodejs 版本
$ nodejs --version
v10.15.2

我的 NPM 版本
$ npm --version
5.8.0

我的 Gradle 版本
$ gradle -version
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/share/java/groovy-all.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

------------------------------------------------------------
Gradle 4.4.1
------------------------------------------------------------

Build time: 2012-12-21 00:00:00 UTC
Revision: none

Groovy: 2.4.16
Ant: Apache Ant(TM) version 1.10.5 compiled on March 28 2019
JVM: 11.0.5 (Private Build 11.0.5+10-post-Ubuntu-0ubuntu1.119.04)
OS: Linux 5.0.0-38-generic amd64

我发现 android-studio --version什么也没做,只是默默地等待,但是当我通过图形用户界面打开程序时,我看到版本是 3.6.1。

我的 androidsdk 版本是未知的......不知道为什么。
$ androidsdk --version
SDK_ROOT=/home/galen/snap/androidsdk/21/AndroidSDK
Picked up _JAVA_OPTIONS: -Duser.home=/home/galen/snap/androidsdk/21
Unknown version

我的 Ubuntu 版本
$ cat /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=19.04
DISTRIB_CODENAME=disco
DISTRIB_DESCRIPTION="Ubuntu 19.04"
NAME="Ubuntu"
VERSION="19.04 (Disco Dingo)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 19.04"
VERSION_ID="19.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=disco
UBUNTU_CODENAME=disco

我的理解是 Java 11 比 JDK 1.8 来得晚,那为什么需求检查会失败呢?而且,如何解决此要求检查失败?

最佳答案

更新:
Java 11 is supported for cordova 10+它允许与 cordova 9 相同的最低 Android 版本。这现在应该是首选解决方案。

原始答案(供引用):
你说得对,Java 11 比 JDK 1.8 更新,理论上它应该可以工作。
但是,cordova explicitly requires JDK 1.8仍然:

Android doesn’t use oracles java but their own implementation, which at the moment is like java 8. So this is an android limitation, not something cordova can fix.


(参见 issue 510)
他们的开发指南 explicitly mentions JDK 1.8还有:

Java Development Kit (JDK)

Install Java Development Kit (JDK) 8.


因此,目前的解决方法是安装 JDK 1.8(如果您选择 Oracle,请注意他们最近更改的许可条款)。您可以观看 PR 928不过,这试图放松这一限制。

关于JDK 1.8 或更高版本与 Cordova 的 Java 11 要求检查失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60956905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com