Mac M1设备上Android Studio Arctic Fox构建Dagger2项目时出现DaggerAppComponent找不到及ExceptionInInitializerError错误的解决求助
解决Mac M1上Android Studio构建Dagger2项目时找不到DaggerAppComponent的问题
看起来你在M1芯片的Mac上用Arctic Fox版本的Android Studio构建Dagger2项目时踩了坑——找不到自动生成的DaggerAppComponent,还跟着ExceptionInInitializerError,而且项目在其他机器上跑没问题,连编译器错误的切换按钮都找不到。我整理了几个针对性的解决方案,你可以一步步试试:
1. 确认Dagger依赖配置&添加M1架构兼容项
首先检查你的app/build.gradle里的Dagger依赖是否完整,注解处理器和核心库版本必须严格一致:
dependencies { // Dagger核心依赖 implementation 'com.google.dagger:dagger:2.16' implementation 'com.google.dagger:dagger-android:2.16' implementation 'com.google.dagger:dagger-android-support:2.16' // 注解处理器(版本必须和核心依赖匹配) annotationProcessor 'com.google.dagger:dagger-compiler:2.16' annotationProcessor 'com.google.dagger:dagger-android-processor:2.16' }
然后在项目根目录的gradle.properties里添加M1兼容配置,避免架构相关的初始化错误:
# 适配M1的JVM参数 org.gradle.jvmargs=-Xmx2048m -Djava.awt.headless=true -Dfile.encoding=UTF-8 # 指定支持的ABI架构,适配M1的ARM架构 android.ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' # 使用M1兼容的JDK(比如Zulu 11,替换成你实际的JDK路径) org.gradle.java.home=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
2. 彻底清理重建项目
M1上的缓存文件偶尔会出兼容性问题,手动清干净再重建:
- 点击Android Studio顶部菜单的
Build->Clean Project - 接着点击
Build->Rebuild Project - 手动删除项目根目录下的
.gradle文件夹和app/build文件夹,然后重启Android Studio
3. 解决ExceptionInInitializerError:更换M1兼容的JDK
这个错误大概率是JDK版本不兼容M1导致的,Arctic Fox推荐用JDK 11,建议换成Zulu的ARM版JDK:
- 下载适配M1的Zulu 11 ARM版本JDK
- 打开Android Studio的
File->Project Structure->SDK Location - 在
JDK Location里选择你下载的Zulu JDK路径
4. 找回编译器错误切换按钮
如果看不到Build面板里的错误切换按钮:
- 先点击Android Studio底部的
Build面板,调出构建日志 - 面板右上角有个类似"Toggle View"的按钮,点击就能切换到编译器错误的列表视图
- 如果还是找不到,试试重置AS布局:
Window->Restore Default Layout,重启后应该就能看到了
5. 尝试用Rosetta运行Android Studio
Arctic Fox是比较早期的AS版本,对M1的原生支持不够完善,试试开启Rosetta兼容:
- 找到Applications文件夹里的Android Studio,右键选择
Get Info - 勾选
Open using Rosetta,然后重启AS再构建项目
内容的提问来源于stack exchange,提问作者Pradeep
相关产品推荐
相关产品推荐

