添加Dagger Hilt依赖后Android构建报错及运行异常求助
解决Dagger Hilt重复文件冲突及BaseApplication未找到问题
问题根源
用**/*作为packagingOptions的排除规则过于宽泛,会删除Hilt注解处理器生成的必要代理文件,导致运行时系统找不到由@HiltAndroidApp注解生成的BaseApplication子类,进而抛出找不到类的异常。
正确解决方案
1. 精准排除冲突文件
在模块级app/build.gradle.kts的android块中,只排除引发冲突的特定文件路径,而非全部文件:
android { // 其他配置... packagingOptions { exclude("META-INF/gradle/incremental.annotation.processors") } }
2. 检查插件与依赖配置
- 确保插件加载顺序正确(先
kotlin-kapt,后Hilt插件):
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-kapt") // 必须在Hilt插件之前 id("com.google.dagger.hilt.android") }
- 确认
hilt-android与hilt-compiler版本统一为2.44:
dependencies { implementation("com.google.dagger:hilt-android:2.44") kapt("com.google.dagger:hilt-compiler:2.44") }
3. 验证BaseApplication与Manifest配置
- 确保BaseApplication类注解与继承关系正确:
import android.app.Application import dagger.hilt.android.HiltAndroidApp @HiltAndroidApp class BaseApplication : Application() { // 自定义逻辑(可选) }
- 确认Manifest中Application标签的
android:name指向正确:
<application android:name=".BaseApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.MyApp"> <!-- 其他组件配置 --> </application>
4. 清理构建缓存
执行Android Studio的Build > Clean Project,再执行Build > Rebuild Project,彻底清除旧缓存文件。
内容的提问来源于stack exchange,提问作者user7029573
相关产品推荐
相关产品推荐

