在 Android 多模块项目中使用 Hilt 依赖注入框架时,可能会出现无法注入的问题。这一问题的原因在于,Hilt 在处理多模块时,可能会出现类路径冲突或无法访问的情况。
为了解决这一问题,可以采用以下步骤:
在根 build.gradle 文件中添加以下依赖:
classpath "com.google.dagger:hilt-android-gradle-plugin:"
并将以下代码添加到 allprojects 下:
repositories {
google()
jcenter()
}
这些步骤会将 Hilt 插件添加到项目,并确保 Gradle 能够访问 Google Maven 存储库。
在需要使用 Hilt 的模块的 build.gradle 文件中添加以下依赖:
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'dagger.hilt.android.plugin'
}
android {
...
}
dependencies {
...
implementation project(":module-name") // 如果需要在当前模块中使用其他模块的代码,则添加该依赖项
implementation "com.google.dagger:hilt-android:"
kapt "com.google.dagger:hilt-android-compiler:"
}
在 Application 类中加上 @HiltAndroidApp 注解,如下:
@HiltAndroidApp
class MyApplication : Application() {
}
在需要进行依赖注入的类中,添加相应的 @Inject 注解。例如:
class MyViewModel @Inject constructor(
private val myRepository: MyRepository
) : ViewModel() {
...
}
通过以上步骤,即可解