Android Hilt 是一个用于简化依赖注入的库,它基于 Dagger 2。要在 Android 项目中配置 Hilt,请按照以下步骤操作:
在项目的 build.gradle
文件中添加以下依赖项:
dependencies {
implementation 'com.google.dagger:hilt-android:2.38.1'
kapt 'com.google.dagger:hilt-compiler:2.38.1'
}
请注意,版本号可能会随着时间的推移而发生变化。请确保使用最新的版本。
在项目的 build.gradle
文件中,启用 Hilt 插件:
plugins {
id 'com.google.dagger.hilt.android' version '2.38.1'
}
在您的 Android 应用的 MainActivity
或其他自定义组件中,添加 @HiltAndroidApp
注解以初始化 Hilt:
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import dagger.hilt.android.HiltAndroidApp
@HiltAndroidApp
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
在需要注入的类中,使用 @AndroidEntryPoint
注解标记该类,并使用其他 Hilt 注解(如 @Inject
、@Singleton
等)定义依赖关系。例如:
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject
lateinit var viewModel: MainViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 使用 viewModel
}
}
@Module
@InstallIn(SingletonComponent::class)
object ViewModelModule {
@Provides
@Singleton
fun provideMainViewModel(): MainViewModel = MainViewModel()
}
@Singleton
class MainViewModel @Inject constructor() : ViewModel() {
// ...
}
现在,您可以构建和运行项目。Hilt 将自动处理依赖注入,您无需进行任何额外的工作。
这就是在 Android 项目中配置 Hilt 的过程。如果您有任何问题,请随时提问。