一位 Web 开发人员尝试使用 Ubuntu 18.04 和 Cordova(v.8.0.0)要求创建 Android 应用程序,结果显示:
检测到 Android Studio 项目 Android 要求检查结果: Java JDK:已安装 Android SDK:已安装 true Android目标:未安装 avdmanager:命令失败,退出代码为 1 错误输出: 线程“main”中的异常 java.lang.NoClassDefFoundError: javax/xml /bind/annotation/XmlSchema 位于 com.android.repository.api.SchemaModule$SchemaModuleVersion。(SchemaModule.java:156) 在 com.android.repository.api.SchemaModule。(SchemaModule.java:75) 在 com.android.sdklib.repository.AndroidSdkHandler。(AndroidSdkHandler.java:81) 在 com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:213) 在 com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:200) 原因:java.lang.ClassNotFoundException:javax.xml.bind.annotation.XmlSchema 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) 位于 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)... 另外 5 个 Gradle:已安装 /usr/lib/gradle/4.8.1/bin/gradle
我使用 Android Studio 创建了 AVD:
模拟器-列表-avds Nexus_5X_Nougat_7.0 Nexus_S_Marshmallow
我努力了:
$ANDROID_HOME/tools/bin/avdmanager 创建 avd --force --name testAVD --abi google_apis/x86_64 --package'system-images;android-25;google_apis;x86_64'
但我遇到了同样的错误:
线程“main”中的异常 java.lang.NoClassDefFoundError: javax/xml /bind/annotation/XmlSchema
我尝试过不同版本的 Java/SDK、Gradle、Ionic 等等。每个说明中都缺少一个步骤,并且所有调试都没有清楚地解释“Android 目标:未安装”的步骤。
答案1
您可以尝试添加此环境变量
export JAVA_OPTS="--add-modules java.xml.bind"
答案2
定义您需要的 API 版本。例如,如果您的目标是 Android 10,则需要 API 平台 29。在下文中,将 29 替换为您所需的 API 版本。
您需要 sdkmanager。类型:
sdkmanager——安装“平台;android-29”
在项目目录中,打开 config.xml
添加:<platform name="android"> <preference name="android-targetSdKVersion" value="29" /> </platform>
在现有的 <widget> ... </widget> 标签之间