我下载并安装了:
oracle的
jdk-9.0.1_osx-x64_bin.dmg
)here sdk-tools-darwin-3859397.zip
)。 配置
PATH
变量后,我尝试运行sdkmanager
,它替换了android
命令来管理SDK组件。但是,它失败,如下所示:$ sdkmanager --list
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.SdkManagerCli.main(SdkManagerCli.java:117)
at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
... 5 more
这是Java版本:
$ java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
有谁知道如何解决它而无需回到Java 8?
相关问题
最佳答案
在this answer的帮助下,我成功地解决了该问题。
我们将在sdkmanager
中应用修复程序。这是一个shell脚本。它位于$android_sdk/tools/bin
,其中$android_sdk
是您解压缩Android SDK的位置。
sdkmanager
。 DEFAULT_JVM_OPTS
变量的行。在我的副本中,它位于第31行:DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'
-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee
。 请注意引号。 在我的副本中,该行变为:DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
结果如下:
$ sdkmanager --list
Installed packages:
Path | Version | Description | Location
------- | ------- | ------- | -------
tools | 26.0.1 | Android SDK Tools 26.0.1 | tools/
Available Packages:
Path | Version | Description
------- | ------- | -------
add-ons;addon-g..._apis-google-15 | 3 | Google APIs
add-ons;addon-g..._apis-google-16 | 4 | Google APIs
add-ons;addon-g..._apis-google-17 | 4 | Google APIs
add-ons;addon-g..._apis-google-18 | 4 | Google APIs
add-ons;addon-g..._apis-google-19 | 20 | Google APIs
add-ons;addon-g..._apis-google-21 | 1 | Google APIs
add-ons;addon-g..._apis-google-22 | 1 | Google APIs
add-ons;addon-g..._apis-google-23 | 1 | Google APIs
add-ons;addon-g..._apis-google-24 | 1 | Google APIs
...
你好!有用!
-编辑:2017-11-07-
请注意,您可能需要在运行
sdkmanager --update
之后再次应用上述修复程序,因为如果sdkmanager
软件包已更新,则tools
shell脚本可能会被覆盖。相关答案