我有一个项目并迁移到gradle依赖,但我发现自己有一个问题试图用gradle设置dagger,我第一次编译它工作完美(或者如果我清理)但如果我尝试两次然后它给我错误像:
错误:(13,14)错误:重复类:com.myapp.android.application.InjectingApplication $ InjectingApplicationModule $$ ModuleAdapter
我尝试使用android-apt插件并在文档中配置,但我仍然得到相同的错误(https://bitbucket.org/hvisser/android-apt/overview)
我也尝试使用提供的依赖,就像编译本教程(https://github.com/frankdu/android-gradle-dagger-tutorial)但到目前为止没有运气.
你有任何想法如何配置匕首和gradle?
编辑
我的build.gradle看起来像这样
apply plugin: 'android'
apply plugin: 'android-apt'
android {
compileSdkVersion 19
buildToolsVersion "19.0.2"
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
packageName "com.myapp.android"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile project(':volley')
apt 'com.squareup.dagger:dagger-compiler:1.2.0'
compile 'com.squareup.dagger:dagger:1.2.0'
}
Run Code Online (Sandbox Code Playgroud)
而我的顶级build.gradle看起来像这样
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies { …Run Code Online (Sandbox Code Playgroud) 我下载了匕首,因为它似乎是Android中依赖注入的一个很好的选择.但是我在整合编译器时遇到了一些麻烦.是否有关于正确设置的提示?我按照关于android注释的说明进行操作,因为这个项目看起来很相似.但它对匕首不起作用.
我做了什么:我将dagger-1.1.0.jar和javax.inject-1.jar添加到我项目的lib文件夹中,并添加了一个名为"compile-libs"的新文件夹,其中包含"dagger-compiler-1.1.0.jar" "因为我不希望将此文件打包在*.apk中.

我将dagger和javax.inject添加到模块的依赖项中.
现在棘手的部分:我将编译器添加到注释编译器设置:

当我运行该程序时,我收到以下错误:无法加载类de.myproject.app.modules.AndroidModule的模块适配器.请确保为此模块运行代码生成.
所以在我看来代码生成并没有发生.另外,我项目中的"生成"文件夹是空的.那么在IntelliJ中让dagger在Android项目中工作的正确设置是什么?