重建Android项目触发NullPointerException,编译失败求排查方案
Android编译报错:dexBuilderDebug任务失败,NullPointerException引发Dexing错误
错误日志
java.lang.NullPointerException: Cannot invoke "String.length()" because "<parameter1>" is null Execution failed for task ':app:dexBuilderDebug'. Could not resolve all files for configuration ':app:detachedConfiguration18'. Failed to transform jetified-appcompat-resources-1.7.0-beta01-runtime.jar to match attributes {artifactType=ext-dex-dexBuilderDebug, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}. Execution failed for DexingExternalLibArtifactTransform: C:\Users\John Doe\.gradle\caches\transforms-3\a17cb0bdbb9802eb5b30084992aad901\transformed\jetified-appcompat-resources-1.7.0-beta01-runtime.jar. Error while dexing. Failed to transform appcompat-1.7.0-beta01-runtime.jar to match attributes {artifactType=ext-dex-dexBuilderDebug, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}. Execution failed for DexingExternalLibArtifactTransform: C:\Users\John Doe\.gradle\caches\transforms-3\cb6538e8f72401bf3ec35fdf09737324\transformed\appcompat-1.7.0-beta01-runtime.jar. Error while dexing.
排查解决方案
- 清理Gradle缓存:删除本地Gradle缓存目录
C:\Users\John Doe\.gradle\caches,然后执行./gradlew clean build重新编译,排除缓存损坏导致的依赖转换异常。 - 降级AppCompat依赖版本:当前使用的
appcompat-1.7.0-beta01为测试版本,存在稳定性隐患。将依赖替换为稳定版,比如implementation 'androidx.appcompat:appcompat:1.6.1',同步项目后重试编译。 - 校验Java版本兼容性:确保项目Java版本与Gradle插件版本匹配(Gradle 7.x+建议使用Java 11),在
gradle.properties中配置:org.gradle.java.home=/path/to/your/java11 - 尝试禁用Jetifier:若项目无需兼容旧版支持库,在
gradle.properties中添加配置关闭Jetifier,排查是否是依赖转换环节出问题:android.enableJetifier=false - 检查依赖冲突:执行
./gradlew app:dependencies导出依赖树,确认是否存在多版本AppCompat或相关库冲突,统一依赖版本后重新编译。
内容的提问来源于stack exchange,提问作者Lechucico
相关产品推荐
相关产品推荐

