You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java 11执行cordova run命令失败的解决咨询

解决Cordova run在OpenJDK 11环境下的avdmanager JAXB缺失问题

这个报错的核心原因是:Java 11 官方移除了JAXB(javax.xml.bind相关类库),而你当前使用的Android SDK命令行工具版本较旧,其中的avdmanager依赖这些已被移除的类。完全可以在Java 11环境下解决,无需回退到Java 8,以下是几种可行方案:

方案1:升级Android SDK命令行工具(推荐)

  • 打开Android Studio的SDK Manager,切换到SDK Tools标签,勾选Show Package Details
  • 找到Android SDK Command-line Tools,选择最新版本(如10.0及以上)进行安装
  • 确保系统环境变量PATH中,新安装的命令行工具路径(通常是C:\Users\16515\AppData\Local\Android\Sdk\cmdline-tools\latest\bin)排在旧的tools/bin路径之前,让系统优先调用新版本工具

新版本的命令行工具已经适配了Java 11,不会再出现JAXB类缺失的问题。

方案2:手动为avdmanager添加JAXB依赖

  • 找到Android SDK目录下的avdmanager.bat(路径:C:\Users\16515\AppData\Local\Android\Sdk\tools\bin)
  • 下载JAXB相关依赖包:jaxb-api.jar、jaxb-core.jar、jaxb-impl.jar、activation.jar,将它们放到C:\Users\16515\AppData\Local\Android\Sdk\tools\lib目录下
  • 编辑avdmanager.bat,找到启动Java的行,修改类路径参数,把下载的jar包加入进去:
    java %JAVA_OPTS% -cp "%CLASSPATH%;C:\Users\16515\AppData\Local\Android\Sdk\tools\lib\jaxb-api.jar;C:\Users\16515\AppData\Local\Android\Sdk\tools\lib\jaxb-core.jar;C:\Users\16515\AppData\Local\Android\Sdk\tools\lib\jaxb-impl.jar;C:\Users\16515\AppData\Local\Android\Sdk\tools\lib\activation.jar" com.android.sdklib.tool.AvdManagerCli %*
    

方案3:直接调试物理设备(跳过模拟器检测)

如果不需要使用Android模拟器,直接连接开启USB调试的物理设备,运行以下命令即可:

cordova run android --device

此命令会跳过查询模拟器列表的步骤,直接将应用部署到连接的物理设备上,避开avdmanager的调用。

补充说明:cordova build能正常运行是因为该命令不需要查询AVD模拟器列表,而cordova run默认会尝试检测可用模拟器,因此触发了avdmanager的报错。

内容的提问来源于stack exchange,提问作者patrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:55:29