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 的過程。如果您有任何問題,請隨時提問。