android kotlin 如何进行hilt的依赖注入
时间: 2024-10-09 08:14:38 浏览: 155
在Android上使用Kotlin进行Hilt(Hibernate for Android Lifetime Injection)的依赖注入,你需要先添加Hilt库到项目并配置。以下是基本步骤:
1. **添加依赖**:
在`build.gradle`文件的`dependencies`部分,添加Hilt的库:
```groovy
implementation 'com.google.dagger:hilt-android:2.40'
kapt 'com.google.dagger:hilt-compiler:2.40'
```
如果你想使用Room数据库的集成,还需要:
```groovy
def room_version = "2.4.0"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
```
2. **启用Hilt注解处理器**:
在`gradle.properties`文件中添加:
```groovy
android.enableDataBinding=true
android.enableJetifier=true
android.useAndroidX=true
dagger.hilt.android.components.ApplicationComponent=kotlin.HiltApplicationComponent::class
```
3. **创建组件**:
在`@InstallIn(ApplicationComponent::class)`或`@Singleton`注解的应用组件类中,声明你的应用程序组件,比如`MyApplicationComponent`。
4. **组件扫描**:
使用`@ContributesAndroidInjector`注解标记需要注入的模块,例如:
```kotlin
@ContributesAndroidInjector(modules = [DatabaseModule::class])
abstract class MyRepository @Inject constructor(private val dataSource: DataSource)
```
5. **应用组件在AndroidManifest.xml**:
将生成的`HiltAndroidApp`类替换掉默认的`Application`,如`<application ... android:name=".HiltAndroidApp">...</application>`。
6. **依赖注入**:
在需要的地方使用`@Inject`注解接收Hilt提供的实例,它们会在构造函数中自动注入。
```kotlin
class MyClass @Inject constructor(private val myService: MyService) {
// ...
}
```
阅读全文