Что можно сделать, чтобы не возникало ошибок при запуске sdkmanager и других утилит Android SDK (версия для командной стLinux

Ответить Пред. темаСлед. тема
Anonymous
 Что можно сделать, чтобы не возникало ошибок при запуске sdkmanager и других утилит Android SDK (версия для командной ст

Сообщение Anonymous »


Я пытаюсь скомпилировать приложение, написанное на Python 3.10.12, в Linux Mint 21.2 для Android. По инструкции, например, должен быть установлен Android SDK. С этой веб-страницы можно загрузить версию для использования из командной строки (commandlinetools-linux-10406996_latest.zip). Достаточно разархивировать zip-архив приложения в каталог и при необходимости добавить пути к переменной PATH. Вот содержимое каталога ~/path/to/cmdline-tools/bin:

apkanalyzer avdmanager lint profgen resourcesshrinker retrace скриншот2 sdkmanager Так что это очень хорошо — sdkmanager существует. Далее я пытаюсь запустить ./sdkmanager "как есть" и с параметром ./sdkmanager " платформы;android-27" как и написано в инструкции. В результате я получаю сообщение об ошибке: это с использованием openjdk версии "1.8.0_392" (оба java и javac имеют одну и ту же версию) ):

Ошибка: произошла ошибка JNI. Проверьте установку и повторите попытку. Исключение в потоке "main" java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli был скомпилирован более поздней версией среды выполнения Java (файл класса версии 61.0), эта версия среды выполнения Java распознает только версии файлов классов до 52.0 в java.lang.ClassLoader.defineClass1 (собственный метод) в java.lang.ClassLoader.defineClass(ClassLoader.java:756) в java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) в java.net.URLClassLoader.defineClass(URLClassLoader.java:473) в java.net.URLClassLoader.access$100(URLClassLoader.java:74) в java.net.URLClassLoader$1.run(URLClassLoader.java:369) в java.net.URLClassLoader$1.run(URLClassLoader.java:363) в java.security.AccessController.doPrivileged (собственный метод) в java.net.URLClassLoader.findClass(URLClassLoader.java:362) в java.lang.ClassLoader.loadClass(ClassLoader.java:418) в sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) в java.lang.ClassLoader.loadClass(ClassLoader.java:351) в sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:621) А этот с использованием java-1.11.0-openjdk-amd64 (опять же, java и javac имеют одну и ту же версию — 11) в данном случае):

Ошибка: произошла ошибка LinkageError при загрузке основного класса com.android.sdklib.tool.sdkmanager.SdkManagerCli java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli был скомпилирован более поздней версией среды выполнения Java (версия файла класса 61.0), эта версия среды выполнения Java распознает только версии файлов классов до 55.0 Однако можно попробовать установить переменную JAVA_HOME. Вот содержимое /usr/lib/jvm:

default-java java-1.11.0-openjdk-amd64 java-11-openjdk-amd64 java-1.8.0-openjdk-amd64 java-8-openjdk-amd64 Я пытался установить как java-8-openjdk-amd64, так и java-11-openjdk-amd64 для добавления JAVA_HOME экспортировать строку JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 в ~/.bashrc, но это не помогло. Ошибка осталась.

Вопрос: что можно сделать, чтобы это исправить?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»