You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio编译报错java.lang.ExceptionInInitializerError如何解决

排查方向与解决方案

1. 先获取完整错误栈

当前报错java.lang.ExceptionInInitializerError是泛化错误,无法直接定位根因,首先执行以下命令获取完整调用栈:

./gradlew compileDebugJavaWithJavac --stacktrace

返回的详细错误栈会直接定位到具体初始化失败的类/组件,是最高效的排查入口。

2. 优先修正已知依赖冲突

你的gradle配置中存在多处明显的依赖版本/归属冲突,先修复以下问题:

  • 移除旧版支持库multidex依赖:你已经适配AndroidX,再引入com.android.support:multidex:1.0.3会导致类冲突,替换为AndroidX版本的multidex:
    implementation 'androidx.multidex:multidex:2.0.1'
    
  • 删除重复依赖:重复声明了两次com.google.android.gms:play-services-maps:17.0.0,保留一个即可。
  • 升级不稳定的测试版依赖:当前引入的androidx.navigation:*:2.1.0-alpha02、androidx.hilt:*:1.0.0-alpha01都是早期alpha版本,兼容性差,建议升级到正式版:
    • 导航组件升级到2.5.3及以上稳定版
    • Hilt升级到2.44及以上匹配的稳定版
  • 废弃依赖替换:androidx.lifecycle:lifecycle-extensions:2.0.0已经废弃,按官方文档拆分替换为对应功能的独立lifecycle组件。

3. 排查注解处理器兼容问题

你同时引入了Dagger、Lombok、Room、Hilt、Safe Args多个注解处理器,版本不兼容是这类初始化错误的高发原因:

  • 临时注释掉Lombok的所有依赖,重新编译,排查是否是Lombok和其他注解处理器版本冲突导致的问题。
  • 检查所有注解处理器的版本是否互相匹配,比如Hilt版本要和Dagger版本对应,Room版本要和Lifecycle版本兼容。

4. 验证JDK配置兼容性

Mac版最新Android Studio默认自带JDK 11,你配置的编译版本是Java 8,确认Gradle使用的JDK为Android Studio内置版本,避免自定义JDK的兼容问题:
打开Android Studio偏好设置 > Build, Execution, Deployment > Build Tools > Gradle,将Gradle JDK选项设置为Embedded JDK。

5. 常规缓存清理

如果上述修改后依旧报错,执行全量清理重建:

  • 关闭Android Studio,删除项目根目录下的.gradle、.idea文件夹,以及app模块下的build文件夹
  • 重新打开Android Studio,执行File > Invalidate Caches / Restart,重启后重新同步Gradle再编译

6. 检查MultiDex初始化配置

确认你的Application类已经正确配置MultiDex:要么直接继承MultiDexApplication,要么在attachBaseContext方法中手动调用MultiDex.install(this)。

内容的提问来源于stack exchange,提问作者drago

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:00:04