匕首错误 - 模块上没有代码生成

时间:2014-12-21 05:49:13

标签: android android-gradle build.gradle dagger

我无法用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包含在依赖中,但它没有解决这个问题。

1 个答案:

答案 0 :(得分:3)

您需要添加

apt 'com.squareup.dagger:dagger-compiler:1.2.2'

到您的依赖项,以便代码生成将在您的类上运行。