要将Dagger迁移到Hilt并使用@ContributesAndroidInjector
为没有使用@AndroidEntryPoint
注解的片段生成代码,你需要遵循以下步骤:
build.gradle
文件中添加Hilt的依赖项。
dependencies { implementation 'com.google.dagger:hilt-android:2.x.x' kapt 'com.google.dagger:hilt-android-compiler:2.x.x' }
替换2.x.x
为最新的Hilt版本。
build.gradle
文件中启用Hilt插件。
plugins { id 'kotlin-kapt' id 'dagger.hilt.android.plugin' }
@ContributesAndroidInjector
:
在你的Hilt模块中,使用@ContributesAndroidInjector
为片段生成代码。注意,你不需要在片段类上使用@AndroidEntryPoint
注解。
@Module @InstallIn(SingletonComponent::class) abstract class FragmentModule { @ContributesAndroidInjector abstract fun contributeYourFragment(): YourFragment }
@AndroidEntryPoint
注解。
@AndroidEntryPoint class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // ... } }
HiltAndroidApp
的Application类。
@HiltAndroidApp class MyApplication : Application()
./gradlew clean
./gradawl build
领取专属 10元无门槛券
手把手带您无忧上云