Android Hilt项目启动报Unable to instantiate application找不到BaseApplication类
问题诱因
- 核心原因是Kotlin项目中Hilt注解处理器使用了Java专属的
annotationProcessor声明,没有改用Kotlin适配的kapt,导致编译阶段没有生成@HiltAndroidApp注解对应的自动生成类Hilt_BaseApplication,运行时加载类找不到触发崩溃。 - 次要问题:你开启了
multiDexEnabled = true,但依赖声明用的是废弃的support库版本multidex,也可能叠加导致类加载异常。
修复方案
1. 替换Hilt注解处理器声明
打开模块级build.gradle,把dependencies下的Hilt相关注解处理器替换为kapt声明:
// 替换前的错误写法 // annotationProcessor "com.google.dagger:hilt-android-compiler:2.38.1" // annotationProcessor 'androidx.hilt:hilt-compiler:1.0.0' // 替换后的正确写法 kapt "com.google.dagger:hilt-android-compiler:2.38.1" kapt 'androidx.hilt:hilt-compiler:1.0.0'
2. 修正Multidex配置(可选,建议处理)
你的minSdk是21,系统原生支持multidex,直接移除废弃的support库multidex依赖即可:
// 删除这行 // implementation 'com.android.support:multidex:1.0.3'
如果后续需要兼容minSdk低于21的版本,改为依赖androidx版本的multidex,同时让BaseApplication继承MultiDexApplication即可。
3. 清理重建项目
清除旧的编译缓存重新构建:
- 点击Android Studio菜单栏
Build -> Clean Project - 再点击
Build -> Rebuild Project - 卸载设备上已安装的旧版本应用,重新安装运行即可。
内容的提问来源于stack exchange,提问作者Ahmed Mamdouh
相关产品推荐
相关产品推荐

