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

Android项目切换kapt后遇ClassNotFoundException及Hilt元数据版本错误求助

问题排查方案

一、解决java.lang.ClassNotFoundException: com.example.myapp.MyApp及Hilt_MyApp找不到的问题

  • 检查Manifest配置准确性
    确认AndroidManifest.xml里的application节点android:name属性完全匹配自定义Application类的包名和类名,比如:

    <application
        android:name="com.example.myapp.MyApp"
        ...>
    

    注意避免大小写、拼写错误,比如包名写成com.exmaple这类低级失误。

  • 验证Hilt依赖配置完整性
    项目级build.gradle(根目录下)需包含Hilt插件:

    plugins {
        id 'com.google.dagger.hilt.android' version '2.44' apply false
        // 其他插件...
    }
    

    App模块的build.gradle需添加:

    plugins {
        id 'kotlin-kapt'
        id 'dagger.hilt.android.plugin'
        // 其他插件...
    }
    
    dependencies {
        implementation "com.google.dagger:hilt-android:2.44"
        kapt "com.google.dagger:hilt-compiler:2.44"
        // 其他依赖...
    }
    

    确保插件和依赖的版本完全一致,不要混用不同版本。

  • 清理缓存并重建项目
    执行Build → Clean Project,然后Build → Rebuild Project;或者手动删除项目根目录和App模块下的build文件夹,重启Android Studio。很多时候是编译缓存导致生成的Hilt_MyApp类没被正确打包进APK。

  • 检查混淆规则(如果开启了混淆)
    如果项目开启了Proguard/R8,必须在proguard-rules.pro中添加Hilt的保留规则,避免自定义Application和Hilt生成类被混淆:

    -keepattributes *Annotation*
    -keep class com.example.myapp.MyApp { *; }
    -keep class com.example.myapp.Hilt_MyApp { *; }
    -keep class dagger.hilt.** { *; }
    -dontwarn dagger.hilt.**
    

二、解决kapt模式下的Unsupported metadata version错误

这个错误90%是Kotlin版本和Hilt版本不兼容导致的,按以下步骤排查:

  • 匹配Kotlin与Hilt的版本兼容关系
    不同Kotlin版本对应不同的Hilt最低支持版本,核心对应关系如下:

    • Kotlin 1.9.x → Hilt 2.48+
    • Kotlin 1.8.x → Hilt 2.44+
    • Kotlin 1.7.x → Hilt 2.40.5 ~ 2.43.2
    • Kotlin 1.6.x → Hilt 2.38.1 ~ 2.40.5
  • 统一依赖版本
    确保hilt-android和hilt-compiler的版本完全一致,比如:

    implementation "com.google.dagger:hilt-android:2.48"
    kapt "com.google.dagger:hilt-compiler:2.48"
    
  • 检查KSP与kapt的混用问题
    如果之前用的是KSP(Kotlin Symbol Processing)代替kapt,切换回kapt时要删除所有KSP相关的依赖和插件配置,避免冲突。比如移除id 'com.google.devtools.ksp'插件和ksp "com.google.dagger:hilt-compiler:xxx"依赖。

  • 升级/降级版本到兼容组合
    如果当前版本不兼容,直接调整Kotlin或Hilt版本到上述兼容区间。比如用的是Kotlin 1.9.0,就把Hilt升级到2.48及以上版本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:27:34