ButterKnife 和 Dagger 2 冲突
ButterKnife and Dagger 2 Conflicts
目前有
compile "com.google.dagger:dagger:2.0.1"
apt "com.google.dagger:dagger-compiler:2.0.1"
compile "com.jakewharton:butterknife:8.8.1"
apt 'com.jakewharton:butterknife-compiler:8.8.1'
因此我的项目找不到
import com.google.common.base.Charsets;
import com.google.common.io.CharStreams;
如果我将两个 dagger 语句都切换为使用 compile 它会起作用,但是我的所有 robolectric 测试都会失败。有人有什么建议吗?
第一个评论你有相当过时的依赖 - 至少 2.x android gradle 插件使来自 Hugo 的 apt 插件过时了。另外,Dagger 版本现在接近 2.13。
这两个导入来自 Guava 库,它是 dagger 编译器的传递依赖。
所以只需添加testCompile "com.google.guava:guava:23.0"
,它很可能会得到解决,除非你有 Guava 版本的冲突,你应该更新它的解决策略。
解决方案:结果是在 IDE 中启用 annotationProcessing 导致了一堆问题,但关闭它后一切正常。
目前有
compile "com.google.dagger:dagger:2.0.1"
apt "com.google.dagger:dagger-compiler:2.0.1"
compile "com.jakewharton:butterknife:8.8.1"
apt 'com.jakewharton:butterknife-compiler:8.8.1'
因此我的项目找不到
import com.google.common.base.Charsets;
import com.google.common.io.CharStreams;
如果我将两个 dagger 语句都切换为使用 compile 它会起作用,但是我的所有 robolectric 测试都会失败。有人有什么建议吗?
第一个评论你有相当过时的依赖 - 至少 2.x android gradle 插件使来自 Hugo 的 apt 插件过时了。另外,Dagger 版本现在接近 2.13。
这两个导入来自 Guava 库,它是 dagger 编译器的传递依赖。
所以只需添加testCompile "com.google.guava:guava:23.0"
,它很可能会得到解决,除非你有 Guava 版本的冲突,你应该更新它的解决策略。
解决方案:结果是在 IDE 中启用 annotationProcessing 导致了一堆问题,但关闭它后一切正常。