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

集成Hilt到Android应用时出现ClassNotFoundException错误

解决Hilt集成时的ClassNotFoundException: com.example.stockmarket.App

错误日志

java.lang.RuntimeException: Unable to instantiate application com.example.stockmarket.App package com.example.stockmarket: java.lang.ClassNotFoundException: Didn't find class "com.example.stockmarket.App"

排查与修复步骤

1. 修复KSP版本缺失问题

你的libs.versions.toml中未定义ksp版本,但插件配置里引用了该版本,这会导致编译异常,间接引发类找不到的问题。在[versions]块中添加与Kotlin版本匹配的KSP版本(Kotlin 2.0.0对应KSP 2.0.0-1.0.21):

[versions]
# 保留原有版本配置,新增以下行
ksp = "2.0.0-1.0.21"

2. 修正Hilt与AGP、Kotlin的版本兼容性

Hilt 2.44与Kotlin 2.0.0存在兼容风险,建议调整为稳定匹配的版本组合:

[versions]
agp = "8.4.1"
kotlin = "1.9.22" # AGP 8.4.1推荐的稳定Kotlin版本
hilt = "2.51.1" # 最新稳定版Hilt
hilt-compile = "1.2.0"
hilt_lifecycle_viewmodel = "1.0.0-alpha03"
hilt_navigation_compose = "1.2.0"
ksp = "1.9.22-1.0.17" # 匹配Kotlin 1.9.22的KSP版本

3. 验证App类的位置与包名

  • 确认App类位于src/main/java/com/example/stockmarket/目录下,包声明为package com.example.stockmarket;
  • 检查Manifest中的android:name=".App"是否正确,若App类不在根包下,需填写完整路径如android:name="com.example.stockmarket.App"

4. 清理缓存并重建项目

执行以下操作彻底清理编译缓存后重新构建:

  • Android Studio中点击File > Invalidate Caches... > Invalidate and Restart
  • 或在终端运行命令:
./gradlew clean
./gradlew assembleDebug

5. 检查混淆配置(若启用)

如果是Release版本,确保混淆规则保留Application类与Hilt生成的代码,在proguard-rules.pro中添加:

-keep class com.example.stockmarket.App { *; }
-keep @dagger.hilt.android.HiltAndroidApp class *
-keep class * extends dagger.hilt.android.HiltAndroidApp

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:37:04