Создать контурное приложение для Android

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

Я пытаюсь настроить среду для создания наброска приложения на Android. Чтобы установить Android SDK платформу, выполните эту команду

$HOME/Android/sdk/cmdline-tools/latest/bin/sdkmanager "platforms;android-34" "build-tools;34.0.0"

Несмотря на то, что версия Java недавняя, возникает ошибка:

Error: LinkageError occurred while loading main class com.android.sdklib.tool.sdkmanager.SdkManagerCli
        java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli был скомпилирован более новой версией Java Runtime (версия файла класса 61.0), эта версия Java Runtime распознает файлы классов до версии 55.0

Даже проверка версии Java по умолчанию на сервере с помощью этой команды
sudo update-alternatives –config java
и вот результат

Есть 2 варианта для альтернативы java (предоставляет /usr/bin/java).

  Выбор      Путь                                         Приоритет   Статус
------------------------------------------------------------
* 0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      авто режим
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      ручной режим
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      ручной режим

Нажмите <enter>, чтобы оставить текущий выбор[*], или введите номер выбора:

что показывает, что версия Java по умолчанию на этом сервере — 17…

Эта проблема не позволяет мне установить SDK и Cordova.

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

Для решения задачи установки Android SDK и создания среды для разработки приложения на платформе Android необходимо понимать, как обеспечить совместимость версий программного обеспечения, таких как Java Runtime и Android SDK. Давайте рассмотрим эту проблему последовательно.

Теория

Проблема несовместимости версий: Одной из распространенных причин ошибок при установке или выполнении программного кода является несовместимость версий использованных инструментов и компонентов. В вашем случае это связано с версиями Java Runtime и SDK Manager, которые вы пытаетесь использовать. Ошибка UnsupportedClassVersionError указывает на то, что класс был скомпилирован с использованием более новой версии Java, чем та, которая в настоящее время активна на вашем сервере. В Java версии классов определяются с помощью "class file version", и ваша текущая версия JDK не соответствует версии, используемой для компиляции SDK Manager.

Понимание версий Java: В Java каждая версия соответствует определенной версии классов:

  • Версия 55.0 соответствует Java 11
  • Версия 61.0 соответствует Java 17

Таким образом, чтобы запускать программное обеспечение, которое было скомпилировано с использованием Java 17, необходимо установить и настроить Java Runtime не ниже этой версии.

Пример

Вы сообщаете, что у вас установлены несколько версий Java, и версией по умолчанию является Java 17, что, казалось бы, удовлетворяет требованиям SDK Manager. Однако ошибка свидетельствует о том, что сервер использует Java Runtime более старой версии (возможно Java 11), при выполнении данной команды.

Применение

Пошаговое руководство для решения проблемы:

  1. Проверка текущей версии Java:
    Выполните следующую команду для проверки используемой версии Java:

    java -version

    Это должно показать, какую версию Java фактически использует терминал. Убедитесь, что версия соответствует Java 17.

  2. Настройка альтернатив для Java:
    Используйте команду sudo update-alternatives --config java для выбора нужной версии Java, если это необходимо. Убедитесь, что версия Java 17 выбрана и активна.

  3. Настройка переменной окружения JAVA_HOME:
    Установите правильное значение для переменной окружения JAVA_HOME. Это может быть сделано, добавив следующую строку в файл .bashrc или .bash_profile:

    export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

    После этого выполните команду source ~/.bashrc или перезапустите терминал для применения изменений.

  4. Обновление инструмента SDK Manager:
    Убедитесь, что ваш инструмент SDK Manager может корректно работать с установленной версией Java. Если проблема сохраняется, проверьте обновления для SDK Manager, загрузив последнюю версию с официального сайта Android Developer.

  5. Проверка и устранение зависимости других переменных окружения:
    Проверьте правильно ли установлены пути до Android SDK и Java в переменных PATH и ANDROID_HOME. Например:

    export PATH=$PATH:$HOME/Android/sdk/cmdline-tools/latest/bin
    export ANDROID_HOME=$HOME/Android/sdk
  6. Проверка установок и зависимостей:
    Убедитесь, что все установленные версии Android инструментария и Java загрузились корректно. Для стабильности работы рекомендуется использовать одинаковые версии SDK и сборочных инструментов, чтобы избежать возможных конфликтов.

Эти шаги помогут устранить имеющиеся ошибки и позволят корректно установить и использовать Android SDK с Java 17. Если проблема все еще возникает, стоит провести анализ с помощью логов и сторонних проверок совместимости компонентов. Это может включать детальный просмотр изменений в документации Android и Java или перепроверку конфигурационных файлов.

Заключение

Взаимодействие различных версий инструментов разработки требует внимательного подхода для поддержания совместимости и стабильности. Таким образом, корректная настройка и проверка всех переменных окружения и версии инструментов является ключевым шагом в успешной разработке Android приложений.

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

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