导入2016年左右旧Android项目Gradle构建失败 无法加载XmlSchema类如何解决
错误原因说明
Unable to load class 'javax.xml.bind.annotation.XmlSchema'报错是因为Java 9及以上版本移除了原JDK内置的JAXB(XML绑定工具)相关类库,2016年开发的旧Android项目默认适配Java 8环境,当本地构建使用的JDK版本高于8时就会出现类缺失问题。
解决方案
- 方案1:降级项目构建使用的JDK版本到Java 8(优先推荐,旧项目改造成本最低)
操作路径:打开Android Studio →File→Settings→Build, Execution, Deployment→Build Tools→Gradle,在Gradle JDK下拉菜单中选择1.8版本的JDK,若本地没有该版本可直接通过下拉菜单的Download JDK选项下载适配的Java 8版本,选择完成后重新同步Gradle即可。 - 方案2:手动添加JAXB依赖补全缺失类
若不想降级JDK,可在项目根目录的build.gradle文件的dependencies代码块中添加如下依赖:
若项目使用的是更早版本的Gradle,将dependencies { implementation 'javax.xml.bind:jaxb-api:2.3.1' implementation 'com.sun.xml.bind:jaxb-core:2.3.0.1' implementation 'com.sun.xml.bind:jaxb-impl:2.3.1' implementation 'javax.activation:activation:1.1.1' }implementation替换为compile即可,添加完成后执行Clean Project再重新同步Gradle。 - 方案3:校验Gradle版本匹配性
检查项目gradle/wrapper/gradle-wrapper.properties文件中的Gradle发行版版本,与根目录build.gradle中com.android.tools.build:gradle插件的版本是否匹配,旧项目不要随意升级Gradle版本,避免出现更多兼容问题。
验证操作
完成上述配置后,点击File → Sync Project with Gradle Files重新同步,若仍报错可执行File → Invalidate Caches / Restart清理Android Studio缓存后重启再试。
内容的提问来源于stack exchange,提问作者Jitendra Kohar
相关产品推荐
相关产品推荐

