Hilt继承Fragment时生成子类失败问题排查
问题解决方法
错误原因
你错误地手动让ZipCodeFragment继承了Hilt生成的Hilt_ZipCodeFragment类,这不符合Hilt的使用规范。Hilt的@AndroidEntryPoint注解会自动生成代理类,你的Fragment应该保持继承原父类,由Hilt在编译时处理代理逻辑。
正确写法
修正ZipCodeFragment的代码,保持继承BaseUserOnboardingFragment,仅添加@AndroidEntryPoint并指定父类即可:
@AndroidEntryPoint(BaseUserOnboardingFragment::class) class ZipCodeFragment : BaseUserOnboardingFragment(R.layout.user_onboarding_zip_code_fragment) { // code }
额外检查项
- Application类配置:确保你的全局Application类添加了
@HiltAndroidApp注解,这是Hilt初始化的核心要求:@HiltAndroidApp class MyApp : Application() { // ... } - Gradle配置验证:
- 项目根目录
build.gradle中添加Hilt插件依赖:buildscript { dependencies { classpath 'com.google.dagger:hilt-android-gradle-plugin:2.48' // 使用最新稳定版本 } } - App模块
build.gradle中应用插件并添加依赖:plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-kapt' id 'com.google.dagger.hilt.android' } dependencies { implementation 'com.google.dagger:hilt-android:2.48' kapt 'com.google.dagger:hilt-compiler:2.48' }
- 项目根目录
内容的提问来源于stack exchange,提问作者Benjamin
相关产品推荐
相关产品推荐

