我无法用dagger编译我的项目,它在日志中显示以下错误:
Caused by: java.lang.IllegalStateException: Module adapter for class myproject.org.modules.ActivityModule could not be loaded. Please ensure that code generation was run for this module.
如果我注释掉对象图,我的项目工作正常,所以我知道它的设置正确。
这是我的MainApplication类,它扩展了android中的应用程序:
public class MainApplication extends Application {
private ObjectGraph objectGraph;
@Override
public void onCreate() {
super.onCreate();
objectGraph = ObjectGraph.create(new ActivityModule());
objectGraph.inject(this);
}
}
这是我唯一拥有的模块:
ActivityModule.java类如下:
@Module(
injects=
ListPageActivity.class
)
public class ActivityModule { }
这是我的gradle构建依赖项:
dependencies {
compile files('libs/volley.jar')
apt "org.androidannotations:androidannotations:3.0+"
compile "org.androidannotations:androidannotations-api:3.0+"
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.android.support:cardview-v7:21.0.0'
compile 'com.jakewharton:butterknife:6.0.0'
compile 'com.squareup.dagger:dagger:1.2.2'
compile 'com.squareup:javawriter:2.5.1'
compile 'javax.inject:javax.inject:1'
compile fileTree(dir: 'libs', include: ['*.jar'])
}
这是我的项目gradle构建文件:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0+'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4+'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
由于某种原因,我不认为这是匕首相关,我在我的IDE中缺少一个包或配置?我已经搜索过SO并尝试将javawriter包含在依赖中,但它没有解决这个问题。
答案 0 :(得分:3)
您需要添加
apt 'com.squareup.dagger:dagger-compiler:1.2.2'
到您的依赖项,以便代码生成将在您的类上运行。