Android启动报错:未找到MainApplication类,疑与Hilt/Kapt相关
解决Hilt导致的ClassNotFoundException(MainApplication/Hilt_MainApplication)
检查Hilt配置完整性
- 确认项目级
build.gradle中正确添加Hilt插件依赖:buildscript { dependencies { classpath 'com.google.dagger:hilt-android-gradle-plugin:2.48' } } - 应用级
build.gradle顶部必须添加Hilt与kapt插件:plugins { id 'com.android.application' id 'kotlin-android' id 'dagger.hilt.android.plugin' id 'kotlin-kapt' } - 确保Hilt核心依赖和注解处理器版本匹配:
dependencies { implementation 'com.google.dagger:hilt-android:2.48' kapt 'com.google.dagger:hilt-android-compiler:2.48' }
验证Application类的注解与清单配置
- 确认
MainApplication类正确添加@HiltAndroidApp注解且继承自Application:@HiltAndroidApp class MainApplication : Application() { // 自定义逻辑 } - 检查
AndroidManifest.xml中Application的类名配置,确保包名与实际类路径一致:<application android:name=".MainApplication" <!-- 其他配置项 --> >
排查kapt编译与缓存问题
- 执行完整的Gradle清理编译命令:
./gradlew clean assembleDebug - 开启Android Studio注解处理器支持:打开
Settings > Build, Execution, Deployment > Compiler > Annotation Processors,勾选Enable annotation processing。 - 若开启混淆,添加Hilt专属混淆规则到
proguard-rules.pro:-keep class com.example.myapplication.Hilt_MainApplication -keep class dagger.hilt.** { *; }
检查模块与依赖冲突
- 确保所有模块的Hilt依赖版本完全一致,避免版本不兼容导致生成类异常。
- 多模块项目中,每个需要Hilt的模块都要单独配置kapt和Hilt插件。
其他修复点
- 核对
MainApplication的包名是否与Manifest中声明的完全一致,避免拼写错误。 - 删除项目根目录的
.gradle、.idea文件夹,重新导入项目,彻底清除缓存。
内容的提问来源于stack exchange,提问作者Anastasia_k64
相关产品推荐
相关产品推荐

