通过命令行调用的Android apkanalyzer提供了“ NoClassDefFoundError”异常

Ale*_*ora 5 java android apk android-sdk-tools

我正在尝试运行Android SDK提供的apkanalyzer工具(在Sdk / tool / bin下),但无法使其正常运行。我知道我也可以通过AndroidStudio使用此工具,但是我需要自动进行apk分析以涵盖很多APK。因此,我遵循了这个https://developer.android.com/studio/command-line/apkanalyzer的用法。

无论如何,当我尝试启动apkanalyzer(例如apkanalyzer apk摘要APKname.apk)时,它会给出以下异常:

线程“主”中的异常java.lang.NoClassDefFoundError:com.android.repository.api.SchemaModule $ SchemaModuleVersion。(SchemaModule.java:156)上的javax / xml / bind / annotation / XmlSchema。com.android.repository.api上的(SchemaModule.java:156)。 com.android.sdklib.repository.AndroidSdkHandler中的SchemaModule。 .android.tools.apk.analyzer.ApkAnalyzerCli.main(ApkAnalyzerCli.java:129)造成原因:java.lang.ClassNotFoundException:java.base / jdk.internal.loader.BuiltinClassLoader上的javax.xml.bind.annotation.XmlSchema。 java.base / jdk.internal.loader.ClassLoaders $ AppClassLoader.loadClass(ClassLoaders.java:190)处的loadClass(BuiltinClassLoader.java:583)在java.base / java.lang处。ClassLoader.loadClass(ClassLoader.java:499)...还有5个

问题出在哪里?

tak*_*dev 6

我遇到过同样的问题。我所要做的就是正确设置 JAVA_HOME。我将 bashrc 中的 JAVA_HOME 设置为 $PATH_TO_ANDROIDSTUDIO/jre

我在 ~/.bashrc 中的确切声明:

export JAVA_HOME=/home/rahul/Softwares/android-studio/jre
Run Code Online (Sandbox Code Playgroud)

Mac 用户示例:

export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre"
Run Code Online (Sandbox Code Playgroud)