Android Studio导入ud839_Miwok项目报错无法加载XmlSchema类如何解决
问题原因
无法加载类
javax.xml.bind.annotation.XmlSchema是因为JDK 9及更高版本将JAXB(Java Architecture for XML Binding)相关模块从默认的核心类库中移除,你导入的Udacity Miwok是开发时间较早的项目,适配的是旧版Android Gradle Plugin(AGP)和JDK 8,修改配置时如果用了高版本JDK运行Gradle就会触发该错误。
解决方案
可根据自身需求选择以下任意一种方案处理:
方法1:修改Gradle运行环境为JDK 8(最稳妥,适配老项目)
- 打开Android Studio的
Settings(Windows/Linux)或Preferences(Mac) - 依次进入
Build, Execution, Deployment>Build Tools>Gradle - 在
Gradle JDK下拉选项中选择JDK 8,如果列表中没有对应版本,可以点击Download JDK选择JDK 8版本自动下载安装,也可以选择本地已安装的JDK 8路径 - 点击
Apply后重新同步Gradle即可恢复正常
方法2:不更换JDK,手动添加JAXB依赖
如果需要继续使用高版本JDK运行Gradle,可以手动补充缺失的JAXB相关依赖:
- 打开项目根目录的
build.gradle文件,在全局dependencies块中添加如下配置:
dependencies { // 原有其他配置保持不变,新增以下4项依赖 classpath 'javax.xml.bind:jaxb-api:2.3.1' classpath 'com.sun.xml.bind:jaxb-core:2.3.0.1' classpath 'com.sun.xml.bind:jaxb-impl:2.3.1' classpath 'javax.activation:activation:1.1.1' }
- 保存文件后同步Gradle即可解决类找不到的问题
方法3:升级项目AGP到兼容高版本JDK的版本
如果想适配新版开发环境,可以将项目的Android Gradle Plugin升级到7.0及以上版本,对应Gradle版本升级到7.0+,新版AGP已经移除了对JAXB的依赖,不会触发该错误。升级时需要注意匹配AGP和Gradle的对应版本号,同时修改项目中已经废弃的旧配置项。
内容的提问来源于stack exchange,提问作者Gustavo Aguilar Quiroz
相关产品推荐
相关产品推荐

