Visual Studio 2017中Android Device Manager创建AVD失败报错
解决Visual Studio Android Device Manager创建AVD时的非零退出码错误
问题根源
从你提供的日志能一眼看出核心问题:java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema。这是因为你当前用的是JDK 9或更高版本,而旧版Android SDK的avdmanager工具依赖的JAXB模块,在JDK 9+里被移除了,直接导致工具启动失败。
解决方案
有两种靠谱的解决办法,挑你方便的来:
方法1:切换到JDK 8运行AVD管理器
JDK 8自带完整的JAXB模块,完美兼容旧版Android SDK工具:
- 先下载安装JDK 8(Oracle官方版或者OpenJDK都可以)
- 找到Android SDK目录下的
tools/bin/avdmanager.bat文件,右键选「以管理员身份打开」编辑 - 在文件开头
@echo off下面加一行,指定JDK 8的安装路径:
(记得把路径换成你实际安装的JDK 8位置)set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_291 - 保存修改后,重启Visual Studio的Android Device Manager再试创建虚拟设备
方法2:修改脚本添加JVM参数(不用换JDK)
要是不想换JDK版本,直接给avdmanager的启动命令补全缺失的模块引用就行:
- 打开
C:\Program Files (x86)\Android\android-sdk\tools\bin\avdmanager.bat(需要管理员权限) - 找到调用Java的那一行,原始内容大概是这样:
call "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %AVDMANAGER_OPTS% -classpath "%CLASSPATH%" com.android.sdklib.tool.AvdManagerCli %* - 在
%DEFAULT_JVM_OPTS%后面加上--add-modules java.xml.bind,java.activation,修改后变成:call "%JAVA_EXE%" %DEFAULT_JVM_OPTS% --add-modules java.xml.bind,java.activation %JAVA_OPTS% %AVDMANAGER_OPTS% -classpath "%CLASSPATH%" com.android.sdklib.tool.AvdManagerCli %* - 保存后重启Visual Studio,再尝试创建AVD就没问题了
补充说明
你不管选哪个Android版本都出问题,根本不是系统镜像的锅,就是Android SDK工具和高版本JDK不兼容的事儿,按上面的方法修复JDK环境或者补全参数就能解决。
内容的提问来源于stack exchange,提问作者Mycroft Holmes
相关产品推荐
相关产品推荐

