null
null
public class FlingyApplication extends Application {
@Singleton
@Component(modules = { FlingyModule.class })
public interface FlingyComponent
}
@Module
public class FlingyModule
null
public class TestFlingyApplication extends Application {
@Singleton
@Component(modules = { TestFlingyModule.class })
public interface TestFlingyComponent extends FlingyComponent
}
@Module
public class TestFlingyModule
到目前为止,它与示例GitHub几乎相同。当dagger为src/main中的组件构建器生成代码时,它们会正确地生成。但是,Dagger并不为src/test中的组件构建器生成代码。
我的主要建筑。Gradle:
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0-alpha3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.5.1'
}
我的应用程序/Build.Gradle
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
android {
# There is obviously more in here, but this is the custom part:
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
}
}
dependencies {
compile 'com.squareup:otto:1.3.8'
compile 'com.android.support:cardview-v7:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.google.dagger:dagger:2.0.1'
apt 'com.google.dagger:dagger-compiler:2.0.1'
compile 'javax.annotation:javax.annotation-api:1.2'
compile 'io.reactivex:rxandroid:1.1.0'
compile 'io.reactivex:rxjava:1.1.0'
testCompile 'com.neenbedankt.gradle.plugins:android-apt:1.4'
testCompile 'junit:junit:4.12'
testCompile 'org.robolectric:robolectric:3.0'
testCompile 'org.mockito:mockito-core:1.10.19'
}
null
null
apt 'com.google.dagger:dagger-compiler:2.0.1'
# TO
compile 'com.google.dagger:dagger-compiler:2.0.1'
null
:app:compileDebugJavaWithJavac
Note: /app/build/generated/source/apt/debug/com/jy/flingy/DaggerFlingyApplication_FlingyComponent.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
:app:preDebugUnitTestBuild UP-TO-DATE
:app:prepareDebugUnitTestDependencies
:app:compileDebugUnitTestJavaWithJavac
Note: /app/build/intermediates/classes/test/debug/com/jy/flingy/DaggerTestFlingyApplication_TestFlingyComponent.java uses unchecked or unsafe operations.
我不知道为什么它会构建到中间层,我假设我需要build.gradle文件来使用apt
而不是compile
,但我似乎不知道如何使其工作。我知道这绝对有可能。
您需要将以下内容添加到build.gradle
文件中以进行检测测试:
androidTestApt 'com.google.dagger:dagger-compiler:<version>'
或者对于JUnit测试:
testApt 'com.google.dagger:dagger-compiler:<version>'
这是为您的测试组件生成Dagger代码所必需的。
null
null
androidTestAnnotationProcessor 'com.google.dagger:dagger-compiler:<version>'
null
testAnnotationProcessor 'com.google.dagger:dagger-compiler:<version>'
编辑:
如果您使用kotlin-kapt
作为Kotlin代码,请使用以下内容:
kaptAndroidTest 'com.google.dagger:dagger-compiler:<version>'
或者对于JUnit测试:
kaptTest 'com.google.dagger:dagger-compiler:<version>'
null
:此接口包含此组件所需的所有方法。 现在,问题是,如果我在中执行此调用,则此类不是由Dagger生成的。如果调用相同的行,则由dagger生成de类,不会有任何问题。 我寻找的另一个解决方案是创建一个具有相同结构的其他不同类,并将作为内部对象,结果也是一样。
https://github.com/google/dagger/blob/master/examples/simple/src/main/java/coffee/coffeeapp.java 任何帮助都将不胜感激。
我已经开始设置匕首2,并面临一个奇怪的问题,看起来像一个bug对我来说。 我有1个主组件和2个子组件,我‘加’在父组件中。我为每个子组件使用不同的。问题是,我可以很容易地为第一个子组件进行字段注入,但我不能为第二个子组件进行相同的注入。注入的字段保持%s。 我正在注射的对象: 这两个对象都具有作用域(作为它们的构造函数字段)。会不会是范围冲突? ---更新--- 我已经检查了由Dagger2生成的
基本上,这个IThttps://github.com/ribot/android-boilerplate变成了Kotlin。
事情是这样的...我认为注释处理器正在运行,但不知何故,android gradle插件无法在编译时输入生成的源代码。我检查了app/build/generated/source/apt/test/目录,并在其中发现,但由于某种原因,它没有作为依赖项导入。 有什么想法吗?这里是一个测试项目的链接,显示了我的问题
一周以来,我一直在尝试在项目中生成代码。问题是,在我添加了AppComponent,模块,依赖项和插件后,它不起作用。我收到编译错误。然后我在新的空项目中重复了所有这些,它工作正常。我的Android Gradle 插件版本:7.1.0 Gradle 版本:7.3 我的AppComponent 应用模块 @Module对象 AppModule { } 格雷德档案 } Android { compi