我正在努力解决问题,
我在我的Android应用程序的build.gradle文件中声明了一些依赖项,但问题是很多这些依赖项使用相同的compat库,在我的情况下appcompat-v7
。
可以为每个依赖项排除此库
compile ('com.github......'){
exclude group: 'com.android.support', module: 'appcompat-v7'
}
但我需要为每个依赖性做这个 另一种方法是使用这样的表达式
configurations {
compile.exclude module: 'appcompat-v7'
}
这样可行,但即使明确声明此库,也会忽略compile 'com.android.support:appcompat-v7:+'
我需要的只是为整个应用程序只包含一次这个库,因为如果编译时没有排除它会显示很多错误,例如has been already defined
。
也许有一种更简单的方法来实现这一点。我将非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
我们在gradle中使用提供的配置(因此当我们gradle:eclipse时,包括包,但在编译到jar时不包括,因为这些jar应该在运行时提供)。此配置如下所示:
configurations {
provided {
dependencies.all {dep ->
configurations.default.exclude group: dep.group, module:dep.name
}
}
compile.extendsFrom provided
}
这允许我们按如下方式包含依赖项:
dependencies {
compile("org.scala-lang:scala-library:2.11.7")
compile("org.scala-lang:scala-compiler:2.11.7")
provided("org.apache.spark:spark-core_2_11:2.0.0")
}
尝试创建一个配置,其中包含要排除appcompat-v7的所有依赖项,然后从此新配置扩展编译。