Cordova, проверка требований не удалась для JDK 8 (‘1.8.*’)! Обнаруженная версия: 11.0.2 на Mac OS

Вопрос или проблема

Я пытаюсь запустить простой проект с cordova на MacOS Mojave 10.14.4:
скриншот ошибки

Я пытался изменить переменную окружения JAVA_HOME несколькими способами:

export JAVA_HOME="`/usr/libexec/java_home -v '1.8*'`"

не помогает

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home"

не помогает
Я создал файлы ~/bash_profile и ~/profile и вставил эту строку в каждый из них:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home"

Затем я выполнил

source ~/.bash_profile

и также попробовал

soruce ~/.profile

И всё равно у меня была проблема с версией JDK.

Я сдался, пытаясь настроить Android JDK вручную, я скачал Android Studio и позволил ей всё настроить. После установки Android Studio я обнаружил, что ANDROID_HOME не определён, поэтому я открыл файл ~/.bash_profile и изменил его:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home"
export ANDROID_HOME="$HOME/Library/Android/sdk"
export PATH="${PATH}:/$ANDROID_HOME/platform-tools:/$ANDROID_HOME/tools:/$ANDROID_HOME/tools/bin"

Из-за проблем с настройкой JDK я также сдался использовать cordova и перешёл на NativeScript, который не требует версию JDK 8. NativeScript чудесным образом подхватил новые системные переменные из файла bash_profile. Я всё ещё не понимаю, почему без Android Studio я не мог изменить системные переменные окружения.

Ответ или решение

Проблема, с которой вы столкнулись при работе с Apache Cordova на вашей системе macOS Mojave 10.14.4, связана с несовместимостью между установленной версией JDK и требованиями Cordova. Ваша ситуация – это распространённая проблема среди разработчиков, использующих Cordova для разработки мобильных приложений. Рассмотрим некоторые аспекты и возможные решения.

Описание проблемы

Cordova требует JDK версии 8 (обозначаемой как 1.8.*), но на вашей системе установлена версия 11.0.2. Это является причиной сообщения об ошибке: "Requirements check failed for JDK 8 (‘1.8.*’)! Detected version: 11.0.2". Попытки изменить переменную окружения JAVA_HOME не принесли успеха, так как Cordova по-прежнему обнаруживает версию 11, а не 8.

Решение проблемы

  1. Удалите JDK 11: Если JDK 11 не требуется для других ваших проектов, вы можете просто удалить его, чтобы предотвратить конфликты.

  2. Установите JDK 8:

    • Убедитесь, что вы действительно установили JDK 8. Можно скачать его с официального сайта Oracle или использовать пакетный менеджер Homebrew. Для установки через Homebrew выполните команду:
      brew tap AdoptOpenJDK/openjdk
      brew install --cask adoptopenjdk8
  3. Настройка переменной JAVA_HOME:
    После установки JDK 8 убедитесь, что переменная окружения JAVA_HOME настроена правильно. Попробуйте выполнить следующую команду в терминале:

    export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

    Для того чтобы изменения были постоянными, добавьте аналогичную строку в файл ~/.bash_profile или ~/.zshrc (в зависимости от вашего терминала), после чего выполните команду:

    source ~/.bash_profile

    или

    source ~/.zshrc
  4. Проверка версии JDK:
    Убедитесь, что версия JDK изменена, выполнив команду:

    java -version

    Если вывод будет показывать JDK 8, значит, переменная JAVA_HOME настроена правильно.

  5. Проверка конфигурации Cordova:
    После выполнения всех вышеперечисленных шагов попробуйте снова запустить ваш проект Cordova:

    cordova prepare

    Если всё настроено верно, ошибка должна исчезнуть.

Заключение

Если трудности с настройкой JDK продолжаются, рекомендуется рассмотреть альтернативные инструменты для разработки, такие как NativeScript, как вы уже сделали. Однако, если ваша цель — использовать Cordova, правильная установка и настройка JDK 8 — ключевой шаг к успешной разработке мобильных приложений. Не забывайте, что поддержка необходимой версии JDK и соответствующей конфигурации системы — залог успешной работы с платформой, такой как Cordova.

Оцените материал
Добавить комментарий

Капча загружается...