linux 在运行SDK管理器和Android SDK的其他实用程序(命令行版本)时,可以做些什么来避免错误?

sz81bmfz  于 12个月前  发布在  Linux
关注(0)|答案(1)|浏览(132)

我尝试在Linux Mint 21.2 for Android中编译一个在Python 3.10.12上编写的应用程序。根据说明,例如,this one,必须安装Android SDK。可以下载命令行版本(commandlinetools-linux-10406996_latest.zip)从this webpage。将应用程序的zip解压缩到一个目录中就足够了,如果需要的话,然后向PATH变量添加一些路径。这里是目录~/path/to/cmdline-tools/bin的内容:

apkanalyzer  avdmanager  lint  profgen  resourceshrinker  retrace  screenshot2  sdkmanager

字符串
所以这是相当不错的-sdkmanager存在。接下来,我尝试运行./sdkmanager“是”和一个参数./sdkmanager "platforms;android-27"以及写在the instruction。因此,我得到一个错误:这一个与使用openjdk version "1.8.0_392"javajavac是相同的版本):

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:621)


而这个使用java-1.11.0-openjdk-amd64(同样,javajavac是相同的版本,在这种情况下是11):

Error: LinkageError occurred while loading main class com.android.sdklib.tool.sdkmanager.SdkManagerCli
    java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 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_HOME设置java-8-openjdk-amd64java-11-openjdk-amd64,将export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64字符串添加到~/.bashrc中,但没有帮助。错误仍然存在。

**问题:**可以做些什么来修复它?

o2gm4chl

o2gm4chl1#

我在尝试安装Android Studio for Flutter时遇到了类似的问题。从我的笔记中..
你已经安装了Java,所以跳到 * 步骤2 -管理Java*,按照文档。我希望它能解决你的问题。

相关问题