我刚刚安装了 Android Studio 并导入了一个项目。但是,我无法构建该项目,因为我显然没有证明我对全能谷歌的忠诚接受了相关许可。
> Failed to install the following Android SDK packages as some licences have not been accepted.
build-tools;28.0.3 Android SDK Build-Tools 28.0.3
platforms;android-28 Android SDK Platform 28
在向无所不知的谷歌搜索祈祷后,我发现了一个 shell 脚本
sdkmanager
安装在不相关的位置,必须运行才能接受许可证。克服了最初的信仰测试问题后,我运行了脚本并遇到了以下错误。Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 5 mor
我在网上发现很多人有同样的问题。
最流行的解决方案,来自 this问题,建议在
sdkmanager
中查找特定行shell 脚本并添加 -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee
.这会导致以下错误。Error occurred during initialization of boot layer
java.lang.module.FindException: Module java.se.ee not found
经过更多搜索和阅读其他答案后,上述更改似乎不适用于更新的 Java 版本。另一个答案,here ,建议如下。
sdkmanager
脚本 为了能够在我的 Mac 上编译 Android 应用程序,这似乎有点矫枉过正,但我愿意尝试。但是我无法从提供的 link 下载 Java 8。因为它需要一个 oracle 帐户,我无法创建一个...
有谁知道在 2019 年首次在 Mac 上使用 Java 11 设置和编译 Android Studio 项目的不太复杂的方法?
最佳答案
我遇到了同样的问题。看起来您正在使用依赖于 OpenJDK 8 的过时许可接受脚本,可能位于 ~/Android/Sdk/tools/bin/sdkmanager
如果你像我一样使用 linux。
切换 Java 版本 (imo) 的更好选择是通过 android studio 安装新的 android studio 命令行工具。转到搜索-> sdk 管理器-> sdk 工具,并且不应勾选 Android SDK 命令行工具(最新)选项(在我的屏幕截图中是这样)。
勾选它,点击应用,android studio 将引导您在 ~/Android/Sdk/cmdline-tools/
中安装新的 cli 工具.
现在只需 ~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager --licenses
.
关于java - 在带有 OpenJDK 11 的 MacOS 上接受 Android SDK 许可证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58016001/