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

Gradle8.6集成Dagger Hilt遇ClassNotFoundException问题求助

Dagger Hilt ClassNotFoundException 排查方案(Gradle 8.6)

1. 确认版本兼容性

Gradle 8.6需匹配对应版本的Hilt与AGP,避免版本不兼容导致生成类异常。检查项目根目录build.gradle.kts(或.gradle)的配置:

// 根build.gradle.kts
plugins {
    id("com.android.application") version "8.6.0" apply false
    id("com.google.dagger.hilt.android") version "2.51.1" apply false // 选用与AGP 8.6兼容的稳定版
}

2. 修正模块级Gradle配置

确保app模块的build.gradle.kts正确应用插件并配置依赖:

// app模块build.gradle.kts
plugins {
    id("com.android.application")
    id("com.google.dagger.hilt.android")
    id("kotlin-kapt") // Kotlin项目必须添加,Java项目可替换为annotationProcessor
}

android {
    namespace = "com.example.test2dagcln" // 必须与Application类的包名完全一致
    // 其他编译配置
}

dependencies {
    implementation("com.google.dagger:hilt-android:2.51.1")
    kapt("com.google.dagger:hilt-compiler:2.51.1") // Kotlin用kapt,Java用annotationProcessor
}

kapt {
    correctErrorTypes = true // 可选,帮助注解处理器生成更准确的类文件
}

3. 验证Application类与Manifest配置

  1. 确保自定义Application类正确添加Hilt注解:
// CoinApplication.kt
package com.example.test2dagcln

import android.app.Application
import dagger.hilt.android.HiltAndroidApp

@HiltAndroidApp
class CoinApplication : Application() {
    // 自定义逻辑
}
  1. 检查AndroidManifest.xml中Application类的声明,包名必须完全匹配:
<application
    android:name="com.example.test2dagcln.CoinApplication" <!-- 或简写为".CoinApplication" -->
    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.Test2dagcln">
    <!-- 其他组件配置 -->
</application>

4. 清理重建项目

Gradle 8.x的增量编译缓存可能导致生成类异常,执行以下操作:

  • 点击Android Studio菜单栏Build > Clean Project
  • 点击Build > Rebuild Project
  • 手动删除项目根目录的.gradle、app/build文件夹,再重新同步Gradle

5. 检查生成类目录

确认Hilt是否生成了Hilt_CoinApplication类:

  • 切换到Android Studio的Project视图,导航到app/build/generated/source/kapt/debug/com/example/test2dagcln(Kotlin)或app/build/generated/source/apt/debug/com/example/test2dagcln(Java)
  • 若未找到Hilt_CoinApplication.java,说明注解处理器未正常运行,需重新检查依赖配置

6. 核对namespace配置

Gradle 8.x中android.namespace替代了旧的applicationId作为生成类的包名来源,必须与Application类的包名完全一致,否则会导致生成类的包名错误,无法被系统识别。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:22:10