我想练习这个Dagger 2 Vehicle Motor示例。
除了我的gradel.build:
之外,我在教程中做了一切Example: http://example.com/~username/p1/p2/p3
Array
(
[0] => p1
[1] => p2
[2] => p3
)
然后我得到了
错误:找不到符号变量Dagger_VehicleComponent
那里有什么问题?(同样没有' _'下划线)
答案 0 :(得分:2)
另一个版本解决了它:
compile 'com.google.dagger:dagger:2.2'
apt 'com.google.dagger:dagger-compiler:2.2'
provided 'javax.annotation:jsr250-api:1.0'
答案 1 :(得分:0)
答案 2 :(得分:0)
我花了一些时间来弄明白这一点。但我找到了原因(至少在我身边) 我从零开始创建了一个项目,之后我试图设置基本的组件/工具,直到遇到这个问题。
阅读其他答案我发现DaggerApplicationComponent类是由编译器自动生成的,然后我想,为什么IDE无法“找到”这个类? 答案是显而易见的......你得到它,是因为项目没有编译,如果场景与我的相同,这里是解决这个问题的步骤。
1)打开终端并转到项目路径(或者只是在Android Studio中打开终端)
2)清理项目 ./gradlew clean
3)构建项目 ./gradlew build
注意:如果此时你注意到该项目没有编译......宾果!这可能是真正的问题。然后按照以下步骤操作:
4)打开gradle并添加buildToolsVersion '23 .0.1'并且非常重要必须启用multiDexEnabled true 这就是我在app模块中的gradle看起来像
的方式android {
buildToolsVersion '23.0.1' // IMPORTANT
compileSdkVersion 26
defaultConfig {
applicationId "com.fixing.dagger"
minSdkVersion 23
targetSdkVersion 26
versionCode 1
versionName "1.0"
multiDexEnabled true // ALSO IMPORTANT
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
之后,您将能够导入DaggerApplicationComponent。
希望这为别人节省时间!