【发布时间】:2018-11-15 15:27:13
【问题描述】:
我尝试在我的项目中使用 Dagger 2 (https://github.com/square/AssistedInject) 实现 Jake Wharton 的 AssistedInject。
我的代码与https://github.com/square/AssistedInject/tree/master/inflation-inject-sample/src/main/java/com/example 几乎相同,但出现错误:
错误:找不到符号@dagger.Module(包括= {InflationInject_ViewModule.class})
似乎ViewModule 生成的代码不知道在哪里可以找到InflationInject_ViewModule:
@InflationModule
@Module(includes = [InflationInject_ViewModule::class])
abstract class ViewModule
我的 build.gradle 的相关位是
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
android {...}
dependencies {
implementation "com.google.dagger:dagger-android:2.16"
implementation "com.google.dagger:dagger-android-support:2.16"
kapt "com.google.dagger:dagger-compiler:2.16"
kapt "com.google.dagger:dagger-android-processor:2.16"
implementation 'com.squareup.inject:inflation-inject:0.3.0'
kapt 'com.squareup.inject:inflation-inject-processor:0.3.0'
}
我已经检查了InflationInject_ViewModule 确实存在于生成的代码中(在build/generated/source/kapt/devDebug/com/project/di/,所以这可能与编译器查找源集/生成代码的位置有关。
有什么建议吗?
【问题讨论】:
-
(抱歉编辑噪音,我认为这纯粹是针对 Dagger 1,但在阅读了更多关于库的内容后,它看起来适用于 Dagger 2。因为 InflationInject 库似乎是单独的注释处理器,如果您可以向我们展示您的 Gradle 文件以确保您已包含将生成该模块版本的代码生成器,这可能会有所帮助。谢谢!)
-
嗨,是的,这是给 Dagger 2 的。我在上面添加了我的
build.gradle(相关位)。
标签: dagger-2 generated-code assisted-inject