Java 11 проверка требований не удалась для JDK 1.8 или выше с Cordova - PullRequest
0 голосов
/ 31 марта 2020

Когда я запускаю `` `` 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

My версия 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, так почему проверка требований не проходит? И как я могу исправить эту ошибку проверки требований?

1 Ответ

0 голосов
/ 31 марта 2020

Вы правы, что Java 11 является более новым, чем JDK 1.8, и что должно работать теоретически.

Однако для cordova явно требуется JDK 1.8 еще:

Android использует не оракулы java, а собственную реализацию, которая на данный момент похожа на java 8. Так что это ограничение android, а не что-то кордовое можно исправить.

(ср. также выпуск 510 )

В их руководстве по разработке также явно упоминается JDK 1.8 :

Java Комплект разработчика (JDK)

Установка Java Комплект разработчика (JDK) 8.

Итак, исправление для сейчас будет установка JDK 1.8 (если вы go для Oracle отметите их недавно измененные условия лицензии). Вы можете посмотреть PR 928 , который пытается ослабить это ограничение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...