我尝试使用命令 ionic cordova build android 生成 android 版本 我正在使用
android 的需求检查结果:Java JDK:已安装 11.0.19 Android SDK:已安装真实 Android 目标:未安装命令 失败,退出代码 1:线程中 avdmanager 列表目标异常 “主要”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:581) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ...另外 5 个 Gradle:已安装 /opt/gradle/gradle-7.4.2/bin/gradle
如果我使用 jdk8,要求就可以,并且我看到 android 目标 但无法用它构建 android 版本 31(缺少库)
我的 sh(JAVA_HOME、ANDROID_SDK_ROOT)和路径中有所有必需的变量:gradle/bin、sdk/tools、sdk/tools/bin
使用 sdk-30 和构建工具 30.0.3 构建可以工作,但不能使用 sdk-31,如果我尝试构建它,则会出现缺少 java 库的错误
但是,如果我直接将 gradle 与 gradle bundleRelease 一起使用,它可以与 android-31 目标完美配合,并且签名的 apk 可以在我的手机上运行
这是一个老项目,很多包都已经过时了。 可以使用良好的命令来修复它(ionic cordova build android?)
有同样的问题, 在 sdk 31 中,一些文件丢失了 我已将它们从 buildtools 30.0.3 复制到 31
不记得它们,但我认为 avdmanager 是其中的一部分