android - Gradle:Android支持版本冲突

标签 android gradle android-8.0-oreo

我在针对Android SDK 26进行编译时遇到以下冲突
AAPT: Attribute "iconTint" already defined with incompatible format.
因此,我将支持版本设置为26.0.2,并尝试通过以下方法强制所有依赖项忽略其支持版本:
exclude group: 'com.android.support'
但是,com.google.android.gms:play-services-basement依赖关系仍然引用其自身的支持依赖关系,即使我将其排除在外:

compile "com.android.support:support-v4:"
compile ("com.google.android.gms:play-services-basement:11.4.0"){
    exclude group: 'com.android.support'
}
./gradlew app:dependencies
|    +--- com.android.support:support-v4:26.0.2 (*)
|    +--- com.google.android.gms:play-services-basement:11.4.0
|    |    \--- com.android.support:support-v4:25.2.0 -> 26.0.2 (*)

知道为什么我所有的依赖项都通过应用上述规则而排除了他们的支持,为什么play-services-basement没有呢?谢谢

最佳答案

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            if (!requested.name.startsWith("test")) {
                details.useVersion '26.1.0'
            }
        }
    }
}
}

关于android - Gradle:Android支持版本冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46448531/

相关文章:

Android SDK - 来自 URL 的媒体播放器视频

android - 在 Android 中按下时更改按钮大小的问题

java - 在构建 Android 应用程序之前,将 jar 从其他目录拉到 libs 文件夹

java - 使用 Android Gradle Plugin 编译时如何添加 java 编译器选项?

java - 使用 Gradle 和 Groovy/Spock 测试 Java 6 库或应用程序

android - 定位android O(26)8.0后如何读取+写入外部存储

Android 位置更新频率

android - 如何在travis-ci上显示android模拟器的logcat?

android - 如何处理传递给 libc 的无效 pthread_t?

android - SecurityException : Caller no longer running, 最后停止