【问题标题】:ButterKnife and Dagger 2 ConflictsButterKnife and Dagger 2 冲突
【发布时间】:2017-11-17 19:44:38
【问题描述】:

目前有

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 测试都失败了。有人有什么建议吗?

【问题讨论】:

  • 你为什么同时使用这两个?通常,您可以选择其中一个。
  • 两者都是什么?每个设置都是它的文档推荐的
  • 你通常不会使用两个注入框架。通常是其中一个
  • 我不同意这些库是相似的。 ButterKnife 是查看和点击监听代码生成,Dagger 是依赖注入库

标签: android dagger-2 robolectric dagger butterknife


【解决方案1】:

第一条评论你有相当过时的依赖项 - 至少 2.x android gradle 插件使来自 Hugo 的 apt 插件过时了。另外,Dagger 版本现在接近 2.13。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      相关资源
      最近更新 更多