Mar*_*een 9 android java-8 android-gradle-plugin dagger-2
我正在使用Dagger 2(DI库的第一次用户)和Android Studio(AS 2.1.2 - SDK 24),显然我的第一个想法是"为了使用它需要哪些依赖项?"
看了一些例子,我可以看到你需要在顶级build.gradle文件中需要一个注释处理器插件:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
Run Code Online (Sandbox Code Playgroud)
现在,Module关卡中的依赖项build.gradle应用了apt插件,Module所以我最终得到了类似的东西:
apply plugin: 'com.neenbedankt.android-apt'
// other generic settings - android / buildTypes etc.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
.
.
compile 'com.google.dagger:dagger:2.6'
apt 'com.google.dagger:dagger-compiler:2.6'
provided 'javax.annotation:jsr250-api:1.0'
}
Run Code Online (Sandbox Code Playgroud)
问题
在我的项目中,我一直在使用Jack Tool Chain和Java 8,发现上面的配置与Jack不兼容.
为了让Jack和Dagger 2合作,研究了我需要的东西,我改变了以下内容:
gradle-wrapper.properties:
变成 :
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
build.gradle(顶级)
变成:
classpath 'com.google.guava:guava:19.0' // added after getting NoSuchMethod Error - it solved the issue
classpath 'com.android.tools.build:gradle:2.2.0-alpha7'
Run Code Online (Sandbox Code Playgroud)
build.gradle(模块级)
变成:
compile 'com.google.dagger:dagger:2.6'
annotationProcessor 'com.google.dagger:dagger-compiler:2.6'
Run Code Online (Sandbox Code Playgroud)
通过这些更改,我可以使用Jack工具链,并构建一个小项目.然而,在没有改变任何代码的情况下,我开始在创建组件时遇到问题 - 在一行简单的代码中:testComponent = DaggerTestComponent.builder().build();单词DaggerTestComponent变为红色(显然Dagger 2库不能正常工作).我设法通过一个好的旧的无效缓存,清理和重建来解决错误.然而,每次我尝试构建小型测试项目时,我都会遇到随机错误 - 我已经管理了几次运行应用程序(它按预期工作),但显然它非常有气质.
题
所以这个问题,我为此花了很长时间而道歉,但认为上述所有内容都是相关的,
是否有比我目前使用的更"稳定"的设置?还有其他人遇到过这些问题吗?
显然我不必使用Jack工具链和Java 8,但如果我不需要,我宁愿不妥协!
| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |