Hilt
compileOptions
增加依赖注入项 build.gradle
plugins{
id("com.google.dagger.hilt.android") version "2.44" apply false
}
app/build.gradle
plugins{
kotlin("kapt")
id("com.google.dagger.hilt.android")
}
android{
...
}
dependencies{
implementation("com.google.dagger:hilt-android:2.44")
kapt("com.google.dagger:hilt-android-compiler:2.44")
}
kapt{
correctErrorTypes = true
}
@HiltAndroidApp
@HiltAndroidApp
class MyApp: Application()
@AndroidEntryPoint 和 @Inject
@AndroidEntryPoint
class MainActivity :ComponentActivity(){
@Inject lateinit var a:A
}
class A @Inject constructor(
b:B
){
}
class B @Inject constructor(){
}
class HomeViewModel @Inject constructor(
private val requestBuilder:RequestBuilder
): ViewModel(){
}
@Module + @InstallIn
@Module
@InstallIn(FragmentComponent::class)
class RequestBuilderDi{
@Provides
fun getRequestBuilder(@ApplicationContext context:Context):RequestBuilder{
return RequestBuilder()
}
}
@Module
@InstallIn(SingletonComponent::class)
class RequestBuilderDi{
@Provides
@Singleton
fun getRequestBuilder(@ApplicationContext context:Context):RequestBuilder{
return RequestBuilder()
}
}