ButterKnife和Dagger 2冲突

时间:2017-11-17 19:44:39

标签: android dagger-2 robolectric dagger butterknife

目前有

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语句切换为使用编译它可以工作,但是然后我的所有robolectric测试都失败了。有人有什么建议吗?

2 个答案:

答案 0 :(得分:0)

第一个评论你已经过时的依赖 - 至少2.x android gradle插件使Hugo的apt插件过时了。此外,Dagger版本现在接近2.13。

这两个导入来自Guava库,它是对dagger编译器的传递依赖。

所以只需添加testCompile "com.google.guava:guava:23.0",它很可能会被解决,除非你有一个Guava版本的冲突,你应该更新它的解决策略。

答案 1 :(得分:0)

解决方案:在IDE中启用annotationProcessing会导致一堆内容中断,但关闭它会导致一切正常。