升级Gradle至4.4及以上版本时出现org.w3c.dom.ElementTraversal崩溃求助
解决Gradle构建报错:java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal
嘿,我之前也踩过这个坑!这个错误本质是Gradle版本与JDK版本不兼容导致的,下面是几个亲测有效的解决方法:
检查并匹配Gradle与JDK的版本对应关系
Gradle 4.x系列官方推荐搭配JDK 1.8(Java 8)使用,如果你当前用的是Java 11及以上版本,就容易出现这类API找不到的问题。
操作步骤:打开Android Studio,依次进入File > Project Structure > SDK Location,查看JDK Location是否指向Java 8的安装路径。如果不是,切换到Java 8即可。
如果没有Java 8,Mac上可以用Homebrew快速安装:brew install openjdk@8强制指定项目的JDK版本
在项目根目录的Project级别的build.gradle中添加以下配置,确保Gradle用Java 8编译:allprojects { tasks.withType(JavaCompile) { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } }同时在
gradle.properties文件中添加Java 8的路径(替换成你自己的实际路径):org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home清理Gradle缓存并重新同步
缓存有时候会攒下奇怪的问题,先手动删除缓存目录:在终端执行rm -rf ~/.gradle/caches
回到Android Studio,点击File > Sync Project with Gradle Files,同步完成后再尝试构建。确认Android Gradle Plugin(AGP)与Gradle版本匹配
不同的AGP版本需要对应特定的Gradle版本,比如:- AGP 3.0.x ↔ Gradle 4.1
- AGP 3.1.x ↔ Gradle 4.4
- AGP 3.2.x ↔ Gradle 4.6
你修改了Gradle版本到4.4/4.5/4.6,要确保Project级别的build.gradle里com.android.tools.build:gradle的版本也对应上,不然也会出现兼容问题。
内容的提问来源于stack exchange,提问作者劉志鴻Shadow_Liu
相关产品推荐
相关产品推荐

