android - Android Gradle插件。如何自动排除重复的传递依赖项

标签 android gradle

在将Android构建工具插件更新为0.14.1之后,如果发现我的构建在Dexing时被重复的类崩溃了。经过一番调查,我发现它位于libraryList.txt中的不同commons-io jars中。

我添加为依赖项的一个2.4,以及来自robospice的另一个1.3。明确排除1.3之后,构建成功。然而

+--- com.octo.android.robospice:robospice:1.4.14
|    \--- com.octo.android.robospice:robospice-cache:1.4.14
|         +--- org.apache.commons:commons-lang3:3.3.2
|         \--- org.apache.commons:commons-io:1.3.2
|              \--- commons-io:commons-io:1.3.2 -> 2.4  

不应该用gradle代替它吗? commons-io:commons-io:1.3.2-> 2.4 我在默认情况下期望这种行为是错误的还是仅仅是Android构建工具中的错误?

最佳答案

每个说法都不是依赖关系解决问题。如果robospice库在其jar中包含commons-io v1.3.2的副本,那么如果您在主构建脚本中引用了commons-io的较新版本,则Gradle将不会自动为您删除它。如果robospice jar仅引用commons-io,但没有打包,那么您就必须在主脚本中将其声明为依赖项才能构建项目。

关于android - Android Gradle插件。如何自动排除重复的传递依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26898775/

相关文章:

java - 如何在 ItemTouchHelpers 中的某个点停止滑动?

testing - 用gradle连续测试

gradle - gradle:为什么没有针对所有sourceSet的jar任务

java - 在没有 POM 的情况下生成和使用 gradle 依赖项

具有共享日志配置的 Gradle 多项目

android - 如何将所有硬编码字符串导出到 Strings.xml

android - Gradle 错误 : ProductFlavor names cannot start with 'test'

android - 如何用动画扩展布局高度?

java - Android 内存不足错误

gradle - 查找与 buildType 关联的所有任务?