我使用匕首2一段时间了,但今天尝试编译得到了这个错误:
错误:(13,31)错误:找不到符号类Dagger_GlobalComponent
错误:(38,21)错误:找不到符号变量Dagger_GlobalComponent
所以这是代码:
public class MyAppApplication extends Application {
private static GlobalComponent component;
@Override
public void onCreate() {
super.onCreate();
component = Dagger_GlobalComponent.builder()
.busModule(new BusModule())
.syncModule(new SyncModule())
.serviceModule(new ServiceModule())
.contextModule(new ContextModule(this))
.persistenceModule(new PersistenceModule(this))
.build();
}}
gradle依赖项:
...
compile 'com.google.dagger:dagger:2.0-SNAPSHOT'
apt 'com.google.dagger:dagger-compiler:2.0-SNAPSHOT'
provided 'org.glassfish:javax.annotation:10.0-b28'
...
任何解决方案?已尝试:清理,重建,更改依赖版本,还删除Gradle缓存并重新安装Android Studio。
如果它也有助于在此示例项目中出现相同的错误:
答案 0 :(得分:36)
我试图在tutsplus here上关注Dagger2教程,并在尝试使用下划线语法(Dagger_ClassnameComponent)时遇到了同样的问题。
正如其他人所说,新的Dagger API不使用下划线语法,而只是使用语法DaggerClassnameComponent。但是,在我的简单应用程序中尝试使用新语法时,找不到类DaggerClassnameComponent。我相信它应该位于app / build / generated / source / apt / debug / packagename / component文件夹中。
起初,我没有在上述文件夹下生成任何文件。但是,我的解决方案是清理和构建项目,然后我可以按预期使用Component类。
答案 1 :(得分:10)
Dagger 2现已发布,因此您需要更改您的gradle依赖项:
compile 'com.google.dagger:dagger:2.0'
provided 'com.google.dagger:dagger-compiler:2.0'
provided 'org.glassfish:javax.annotation:10.0-b28'
答案 2 :(得分:9)
看起来他们从生成的内容中删除了下划线。请参阅Dagger2 generated class is all of a sudden missing from Android Studio。