Noo*_*les 6 android gradle android-support-library android-gradle-plugin
我有一个Android项目,它依赖于不同的模块,每个模块依赖于android support-v4库的不同版本
1)我的应用程序还依赖于最新的android support-v4库(修订版21)所以在这个build.gralde中我放了一行:
dependencies {
compile 'com.android.support:support-v4:21.0.0'
}
Run Code Online (Sandbox Code Playgroud)
2)Facebook SDK(v.3.15)模块也依赖于android支持库v4,但是版本13及其build.gradle文件说:
dependencies {
compile 'com.android.support:support-v4:13.0.+'
compile files('../libs/bolts.jar')
}
Run Code Online (Sandbox Code Playgroud)
3)还有一个模块,在这种情况下我们可以调用Module3,也取决于support-v4但是与其他模块的修订版本不同,例如:
dependencies {
compile 'com.android.support:support-v4:19.0.+'
compile files('../libs/bolts.jar')
}
Run Code Online (Sandbox Code Playgroud)
问题:
1)gradle如何处理不同的support-v4库修订版?
2)它究竟做了什么?
3)就apk大小而言,它是什么意思?
在这种情况下,Gradle 将使构建失败(在我的皮肤上进行了测试,我没有找到其他解决方案)“不幸的是”您必须在任何模块上使用相同版本的支持。
Gradle 提供了以下冲突解决策略:
Newest:使用最新版本的依赖项。这是 Gradle 的默认策略,只要版本向后兼容,通常就是一个合适的选择。
失败:版本冲突导致构建失败。此策略要求在构建脚本中显式解决所有版本冲突。有关如何显式选择特定版本的详细信息,请参阅ResolutionStrategy。
虽然上面介绍的策略通常足以解决大多数冲突,但 Gradle 提供了更细粒度的机制来解决版本冲突:
将第一级依赖关系配置为强制。如果冲突的依赖关系已经是第一级依赖关系,则此方法很有用。请参阅DependencyHandler中的示例。
将任何依赖项(可传递或不可传递)配置为强制。如果冲突中的依赖关系是传递依赖关系,则此方法很有用。它还可用于强制第一级依赖项的版本。请参阅ResolutionStrategy中的示例
依赖项解析规则是 Gradle 1.4 中引入的一项孵化功能,它使您可以对为特定依赖项选择的版本进行细粒度控制。
归档时间: |
|
查看次数: |
731 次 |
最近记录: |