Jenkins构建Android项目报错:java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal
问题解决:Jenkins升级AGP/Gradle后构建报NoClassDefFoundError
核心问题
升级Android Gradle插件(v4.2.2)和Gradle(v6.7.1)后,Jenkins构建出现java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal,但Android Studio本地构建正常,根源是Jenkins环境的JDK配置或类路径与本地AS环境不一致。
解决步骤
- 统一JDK版本:在Jenkins任务配置的「JDK」选项中,选择与Android Studio一致的JDK版本(AGP 4.2.2支持JDK 8/11,Gradle 6.7.1兼容JDK 8-15),避免使用系统默认的可能缺失类的JDK。
- 添加JVM模块参数:在项目根目录的
gradle.properties中添加以下配置,确保JVM加载包含ElementTraversal的XML模块:org.gradle.jvmargs=-Xmx4096m --add-modules java.xml - 清理构建缓存:删除Jenkins项目的workspace目录,或在构建任务中先执行
clean任务(比如构建命令改为./gradlew clean assembleDebug),清除旧缓存文件的干扰。 - 排除依赖冲突:若存在第三方库引入的xerces依赖冲突,在报错模块的
build.gradle中添加排除规则:configurations.all { exclude group: 'xerces', module: 'xercesImpl' }
内容的提问来源于stack exchange,提问作者Bipin Tiwari
相关产品推荐
相关产品推荐

