Я использую Cordova 6.4.0 в ОС Windows 7, но я получаю эту ошибку, как только попытаюсь построить версию для Android:
Переменная Java Home правильно настроена на путь JDK, но я не знаю, почему я получаю эту проблему. Любые предложения, пожалуйста?
Я использую Cordova 6.4.0 в ОС Windows 7, но я получаю эту ошибку, как только попытаюсь построить версию для Android:
Переменная Java Home правильно настроена на путь JDK, но я не знаю, почему я получаю эту проблему. Любые предложения, пожалуйста?
Я думаю, что нашел решение проблемы. Я отправлю ответ на случай, если кто-то столкнется с той же проблемой.
Удалите все предыдущие JDK, включая 1,8 Установите JDK 1.8
Вам не нужно удалять любую более высокую версию sdk. просто установите jdk1.8.0_161 или нет, если он уже установлен.
Теперь просто установите переменную JAVA_HOME
USER (не системную переменную), как показано на рисунке ниже.
Таким образом, вам не нужно удалять более высокую версию, и проблема будет решена.
Для работы была удалена jdk 9 и переустановка jkd 8.x
На Mac для удаления перейдите на терминал и выполните следующие действия:
cd /Library/Java/JavaVirtualMachines
sudo rm -rf jdk-9.0.1.jdk
Затем установите jdk 8.x, загрузив пакет .dmg из Oracle.
В Linux (Debian/Ubuntu) это можно решить, выбрав Java 1.8 SDK в
sudo update-alternatives --config javac
Непосредственное изменение переменной env JAVA_HOME
похоже, не имеет никакого эффекта.
РЕДАКТИРОВАТЬ: отвечая на комментарии: Это, вероятно, связано с тем фактом, что новые установки Java Debian (и, по-видимому, Ubuntu) через менеджер пакетов не используют переменную JAVA_HOME
для определения местоположения JRE. Смотрите это и этот пост для получения дополнительной информации.
Удаление старых версий JDK сработало бы. Но, возможно, это обходное решение. Я столкнулся с той же проблемой и заметил, что как новая версия JDK, так и старая версия JDK-пути упоминаются в переменной 'path
'.
Удаление старой версии JDK-пути из 'path
'переменной окружения сделало трюк для меня. Надеюсь, это тоже поможет кому-то.
Возможно, у вас версия больше 8, но Cordova поддерживает только JDK 1.8. Просмотреть эту ссылку Документация Cordova
Я взглянул на фрагмент кода, который на самом деле проверяет номер версии вашего Java. Найдите следующее: module.exports.check_java в platform/android/cordova/lib/check_reqs.js. в строке 220. Вы увидите, что команда оставила регулярное выражение и комментарий о том, что Java 10 будет поддерживаться в будущем.
Существующее регулярное выражение не будет работать при запуске с последними версиями Java, такими как Java 10. Это потому, что Java 8 или 9 сохраняются в следующем формате: 1. [8-9]. **, но Java 10 сохраняется как 10. ** и регулярное выражение ищет версию в формате 1. [8-9]. **
// Let check for at least Java 8, and keep it future proof so we can support Java 10
var match = /javac ((?:1\.)(?:[8-9]\.)(?:\d+))|((?:1\.)(?:[1-9]\d+\.)(?:\d+))/i.exec(output);
Мое решение:
Вам не нужно удалять текущую версию JRE или JDK, поскольку установщик устанавливает каждую версию в определенную папку.
1- Установить версию Java 8 Перейдите по этой ссылке
2- Обновите переменные среды:
указав их на место, где были установлены JRE 8 и JDK 8.
// On my machine
C:\Program Files\Java\jdk1.8.0_171 // JAVA_HOME
C:\Program Files\Java\jre1.8.0_171 // JRE_HOME
Откройте новый сеанс терминала и выполните команду, которая не удалась. Это должно работать сейчас.
Не работал?
В случае сбоя по другим причинам возможен процесс отладки:
Я рассказал, что моя переменная окружения path указывала на java 1.7, в то время как JAVA_HOME указывал на 1.8, поэтому я редактировал переменную пути до 1.8, и я был в порядке.
в моем случае JAVA_HOME указывал на C:\Program Files (x86)\Java\jdk1.7.0_55
когда я писал , где java в cmd выводил C:\Program Files (x86)\Java\jdk1.7.0_55 вместе с java.exe, я изменил переменную JAVA_HOME из переменные среды C:\Program Files\Java\jdk1.8.0_20, и это сработало, поэтому, похоже, у меня было 2 экземпляра jdk, а кордове нужен v1.8. * one.
Я согласен с @Хозингтоном. Это должна быть ошибка кода Кордовы обнаружения Java-версии. Что я сделал:
JAVA_HOME
на путь JDK 8 и измените также переменную path
.cordova build
.И ошибка исчезла!
MAC: перейдите в: /Library/Java/JavaVirtualMachines. Убедитесь, что у вас есть только jdk1.8.0_201.jdk. Если у вас их много, удалите другой JDK.
Это сообщение об ошибке заставляет пользователя сбивать с толку, как показано ниже.
Сообщение об ошибке заставляет пользователя исправить ошибку сборки с конфигурацией JAVA_HOME. Но настоящая проблема заключается не только в JAVA_HOME.
Я исправляю эту проблему с правильной конфигурацией в JAVA_HOME и Path в "системной переменной".
Надежда может помочь устранить проблему, но не переустанавливать JDK.
Ответ, отправленный MadNeox, верен. Я столкнулся с аналогичной проблемой У меня был установлен jdk 9, а также версия 1.8
Сначала я попытался сохранить jdk 9 и удалить 1.8, он выведет ошибку Ошибка проверки требований
Затем я попытался удалить jdk9 и переустановить 1. на этот раз он показывал, что не удалось запустить javac-версию
После некоторого времени игры с переменными среды я наконец получил решение
В этот момент моя система имеет только версию jdk 1.8 Cordova: 7.1.0
-Открыть вкладку "Переменные среды" -Пользовательские переменные создают новую переменную PATH -give это следующее значение C:\Program Files\Java\jdk1.8.0_151\bin (может измениться в зависимости от того, где вы установили свой jdk)
Это должно решить вашу проблему Надеюсь, что это поможет.
Хотя ответ уже был дан, мне потребовалось некоторое время, чтобы выяснить, где я ошибся, поэтому решил опубликовать это в надежде, что это спасет кого-то еще.
Иногда изменение пути и java-home
не работает. Вы должны добавить
C:\Users\[your user]\AppData\Local\Android\Sdk\platform-tools
C:\Users\[your user]\AppData\Local\Android\Sdk\tools
к пути изменения окружающей среды.
Просто убедитесь, что такие же версии JDK (то есть 1.8 в этом случае) доступны из переменной среды PATH
и JAVA_HOME
. Пример:
Если
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_152
тогда
Переменная PATH
также должна содержать вышеуказанный путь и, что важно, перед любым (если есть) другим путем, если JDK/JRE уже упоминается в переменной PATH
. Вы можете удалить другие версии, если другое приложение не использует другую версию java.
Если у вас установлены как jdk8, так и jdk9, вы должны проверить, какая версия
на пути и где указывает JAVA_HOME.
В журнале, который вы опубликовали, я вижу, что JAVA_HOME ведет к JDK9.
измените свой globel JAVA_HOME env var на целевой JDK8 или вы можете изменить JAVA_HOME в powershell, прежде чем использовать CLI cordova, если вы хотите использовать jdk8 только для кордовы:
$env:JAVA_HOME="C:\Program Files\Java\jdk1.8.0_151"
**cordova build android**
Ребята, чтобы получить смесь прямо на Windows, вам нужно сделать следующее
C:\Program Files\Java\jdk1.8.0_162
убедитесь, что вы не добавляете \bin
в значение.;
и добавьте это значение в системный путь, например C:\Program Files\Java\jdk1.8.0_162\bin;
Здесь добавлен \bin
.Примечание. Переменные среды сложны. Они должны быть закрыты a ; перед открытием другого. Вот почему мы положили один перед добавлением значения и один после значения, чтобы закрыть его.
если у вас несколько версий Java, и вам нужно их сохранить, вам нужно проверить следующее:
если у вас много версий JDK, вы можете запустить
export JAVA_HOME="/usr/local/env/java/jdk1.8.0_131.jdk/Contents/Home/"
до сборки кордова, чтобы использовать конкретную версию JDK :)
Я столкнулся с той же проблемой с jdk1.8.0_201. Она была решена, когда я сделал JAVA_HOME = C:\Program Files\Java\jdk1.8.0_201 и добавил "C:\Program Files\Java\jdk1.8.0_201\bin" в переменная пути
Это старый вопрос, но так как у меня была та же проблема, но у ошибки был другой источник, вот короткий ответ.
Проблема обнаружена только в Windows и в IDE Webstorm 2019.2
В версии 2019.2 возникла проблема с Webstorm, потому что он внутренне использовал open jdk для переменной% JAVA_HOME% вместо (из os) целевого java jdk.
В моем случае (да, это старый, это старый проект Cordova...)
выполнение java -version
в Windows cmd.exe:
$ java -version
java version "1.8.0_221"
но выполняем java -version
в терминале Webstorms:
$ java -version
openjdk version "11.0.3" 2019-04-16
// more output
Исправление пришло с патчем, выпущенным позже (сегодня) версии 2019.2.1.
Теперь Webstorm использует переменную os% JAVA_HOME%, как и положено, и вывод java -version
идентичен в обоих случаях.
Надеюсь, это поможет кому-то!
Я просто переименовал старую папку JDK с _
, на всякий случай, если мне это нужно дальше, и это сработало.
C:\Program Files (x86)\Java\_jdk1.7.0_40
C:\Program Files (x86)\Java\_jre7
Кажется, Android SDK не поддерживает Java 9. Снизьте до 8, если вы не хотите полностью вернуться к JDK 1.8, что для меня смешно. JDK 8 работает для меня, но не забудьте правильно установить переменную среды JAVA_HOME в местоположение вашей установки JDK.
Согласно официальной документации Кордовы, он поддерживает только JDK 1.8, не более, до даты (апрель 2018 года). Или может возникнуть проблема с скриптом обнаружения версий внутри кордовы.
Я отключил все установки Java и переустановил jdk-8u181-windows-x64. Это помогло мне избежать этой проблемы.
если проблема сохраняется,
Проверь это:
Перейдите в панель управления, удалите старый JDK и установите снова с https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.
Вопрос будет отсортирован..
У меня (Open) JDK 8 и 11 установлены на Windows 10, и у меня была та же проблема. Для меня сработало следующее:
Даже если я правильно разместил все переменные пути, я все равно получил это сообщение.
После много копания я понял, что моя IDE (webstorm 19.x) связана с Java 11. Прочитав это: https://intellij-support.jetbrains.com/hc/en-us/articles/206544879-Selecting-the-JDK-version-the-IDE-will-run-under помог мне переключить IDE обратно на Java 8, что решило проблему для меня.
Для пользователей Ubuntu я смотрел ответы, но мне потребовалось время, чтобы собрать решения. Для дальнейшего использования удалите установку sudo по умолчанию с помощью команды
sudo rm -r /usr/lib/jvm/jdk10.0.2
замените вышеупомянутый jdk своей версией, которую вы установили, у меня была 10.0.2! Тогда зайдите на сайт оракула и скачайте tar.gz отсюда. Затем распакуйте ваш файл в home
папку, используя код ниже, используя терминал
tar zxvf jdk-8u201-linux-x64.tar.gz
Замените свой Jdk, но используйте jdk1.8, так как это необходимо для Cordova, как показано выше. Затем установите переменные среды, используя код ниже
gedit ~/.bashrc
Откроется текстовый редактор и добавьте этот экспорт. Он будет работать после перезагрузки компьютера
export JAVA_HOME=/home/abrsh/jdk1.8.0_201
Здесь в приведенном выше коде abrsh - мое имя пользователя, а jdk1.8.0_201 - папка, которую я извлек ранее, используя tar zxvf