Cordova выбирает неправильную версию java

#java #android #android-studio #cordova

#java #Android #android-studio #кордова

Вопрос:

Я пытаюсь запустить

 cordova build android
 

Выдает следующую ошибку

 Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=/home/bappaditya/Softwares/android-studio (recommended setting)
ANDROID_HOME=/home/bappaditya/Softwares/android-studio (DEPRECATED)
Requirements check failed for JDK 8 ('1.8.*')! Detected version: 12.0.2
Check your ANDROID_SDK_ROOT / JAVA_HOME / PATH environment variables.
 

Я вижу, что он подобрал ANDROID_HOME , ANDROID_SDK_ROOT но не правильную версию java

Моя текущая среда

 >java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~20.04-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)

>echo $JAVA_HOME
/usr/lib/jvm/java-8-openjdk-amd64

>echo $PATH
/home/bappaditya/.cargo/bin:/opt/gradle/gradle-5.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/bappaditya/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin

 

Как вы можете видеть, JAVA 8 установлена и установлена по умолчанию. Почему cordova жалуется на версию Java?

Ответ №1:

Кажется, cordova использует javac для определения версии, а не java .

Итак, команда, которая действительно показывает версию, которую cordova получает при поиске Java,:

 javac -version
 

В моем случае, несмотря на то, что у меня были версии, идентичные тем, что у вас есть в вашей среде, оказалось, что я javac указывал на недавно обновленную Java (из обновлений Ubuntu)

Чтобы исправить это, я использовал update-alternatives команду и javac вернулся к своей версии 1.8.0 следующим образом:

 sudo update-alternatives --config javac