android - 让 Android sdkmanager 与 Java 11 一起运行

标签 android java-11

我在使用 Java 11(不是工作室,只有 SDK 工具)运行 Android sdkmanager 时遇到问题。我不想安装 JDK 8 或类似的东西。有没有办法用 JDK 11 为 Android sdkmanager 解决这个问题?

我已经经历了this answer并且它不为 Java 11 提供命令行修复。还有其他可能的解决方法吗?

最佳答案

更新:如另一个答案中所述,新命令行工具中的 sdkmanager 支持 JDK 11+。旧的 sdkmanager 已多年未收到更新,因此不需要此解决方法。检查@dmertins 答案以获取链接和更多详细信息。


如果有人正在寻找 Java 11 上的 Linux 修复程序。我是在以前的答案的基础上构建的

cd Android/tools
mkdir jaxb_lib
wget https://repo1.maven.org/maven2/javax/activation/activation/1.1.1/activation-1.1.1.jar -O jaxb_lib/activation.jar
wget https://repo1.maven.org/maven2/com/sun/xml/bind/jaxb-impl/2.3.3/jaxb-impl-2.3.3.jar -O jaxb_lib/jaxb-impl.jar
wget https://repo1.maven.org/maven2/com/sun/istack/istack-commons-runtime/3.0.11/istack-commons-runtime-3.0.11.jar -O jaxb_lib/istack-commons-runtime.jar
wget https://repo1.maven.org/maven2/org/glassfish/jaxb/jaxb-xjc/2.3.3/jaxb-xjc-2.3.3.jar -O jaxb_lib/jaxb-xjc.jar
wget https://repo1.maven.org/maven2/org/glassfish/jaxb/jaxb-core/2.3.0.1/jaxb-core-2.3.0.1.jar -O jaxb_lib/jaxb-core.jar
wget https://repo1.maven.org/maven2/org/glassfish/jaxb/jaxb-jxc/2.3.3/jaxb-jxc-2.3.3.jar -O jaxb_lib/jaxb-jxc.jar
wget https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar -O jaxb_lib/jaxb-api.jar

下载完成后(确保所有文件都下载成功),您必须在 tools/bin 目录中编辑 sdkmanager 和 avdmanager 脚本。您可以手动或自动执行此操作。

来自 Simon Ruggier 的回答(除非你使用 gnu-sed,否则不能在 mac 上工作):

sed -ie 's%^CLASSPATH=.*%\0:$APP_HOME/jaxb_lib/*%' bin/sdkmanager bin/avdmanager

或者手动向下滚动到 CLASSPATH 变量,然后像这样添加我们刚刚下载的新 jar:

CLASSPATH=$APP_HOME/jaxb_lib/activation.jar:$APP_HOME/jaxb_lib/jaxb-impl.jar:$APP_HOME/jaxb_lib/jaxb-xjc.jar:$APP_HOME/jaxb_lib/jaxb-core.jar:$APP_HOME/jaxb_lib/jaxb-jxc.jar:$APP_HOME/jaxb_lib/jaxb-api.jar:<etc etc...DO NOT REMOVE THE OTHER JARS!...>

关于android - 让 Android sdkmanager 与 Java 11 一起运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53076422/

相关文章:

launch4j - Java 11 在 Windows 7 上 32 位

java - 从 Parse.com android 播放音乐

java - HttpURLConnection 发布 Android

java - Debug模式下的 Docker 和 jre 11

java - appengine 标准 java 11 是否支持类似于 ApiProxy.getCurrentEnvironment().getRemainingMillis() 的任何内容

java - 如何使用 JDK 11 为 Collection.toArray() 提供生成器函数?

android - 使用Gracenote SDK Android进行录音

android - 第三方支付。这是什么?

java - 解析改造 response.body()

android - NestMember 需要 ASM7