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

添加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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:28:14