无法解决com.android.support版本统一问题,求TargetSDK28正确配置
解决Android targetSdkVersion 28下的com.android.support依赖冲突问题
这个问题的核心是你引入的第三方库(比如Facebook SDK、Google Play服务相关依赖)间接引用了旧版本的com.android.support库,和你明确声明的28.0.0版本不一致,导致Gradle抛出版本统一的要求。下面是一步步的解决方法:
第一步:定位冲突来源
先运行Gradle命令查看完整的依赖树,找出哪些库在偷偷引入旧版本的support库:
# macOS/Linux ./gradlew app:dependencies # Windows gradlew app:dependencies
在输出里搜索com.android.support,你会看到类似+--- com.facebook.android:facebook-android-sdk:4.31.0 -> 4.31.0 | +--- com.android.support:support-v4:27.0.2 -> 28.0.0 (*)这样的条目,这里就能看到Facebook SDK原本依赖的是27.0.2的support-v4。
第二步:强制所有support库使用统一版本
在你的android代码块中添加依赖版本强制策略,让Gradle忽略第三方库的旧版本依赖,统一使用你指定的28.0.0版本:
android { compileSdkVersion 28 buildToolsVersion '28.0.3' // 建议升级到对应compileSdk的版本,稳定性更好 defaultConfig { minSdkVersion 16 targetSdkVersion 28 versionCode 369 versionName "4.0.2" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } flavorDimensions "tier" productFlavors { playStoreFree { ... } } // 添加这部分:强制所有support库使用28.0.0版本 configurations.all { resolutionStrategy { force 'com.android.support:appcompat-v7:28.0.0' force 'com.android.support:support-v4:28.0.0' force 'com.android.support:recyclerview-v7:28.0.0' // 如果依赖树里还有其他support库冲突,比如design、cardview等,也在这里添加force规则 } } }
第三步:更新第三方依赖到兼容版本(可选但推荐)
部分旧版第三方库可能存在兼容性问题,建议尽量更新到支持com.android.support:28.0.0的版本:
- Facebook SDK 4.31.0版本较老,建议更新到4.40.0(这是最后一个支持support库的版本,之后的版本迁移到AndroidX了)
- Google Play服务相关库可以更新到对应support 28的兼容版本,比如:
com.google.android.gms:play-services-ads:17.2.0com.google.android.gms:play-services-analytics:16.0.8com.google.firebase:firebase-core:16.0.9
修改后的完整build.gradle配置
apply plugin: 'com.android.application' android { compileSdkVersion 28 buildToolsVersion '28.0.3' defaultConfig { minSdkVersion 16 targetSdkVersion 28 versionCode 369 versionName "4.0.2" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } flavorDimensions "tier" productFlavors { playStoreFree { ... } } configurations.all { resolutionStrategy { force 'com.android.support:appcompat-v7:28.0.0' force 'com.android.support:support-v4:28.0.0' force 'com.android.support:recyclerview-v7:28.0.0' } } } repositories { mavenCentral() maven { url "https://maven.google.com" } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:support-v4:28.0.0' implementation 'com.google.android.gms:play-services-ads:17.2.0' implementation 'com.google.android.gms:play-services-analytics:16.0.8' implementation 'com.google.firebase:firebase-core:16.0.9' implementation 'com.anjlab.android.iab.v3:library:1.0.44' implementation 'com.facebook.android:facebook-android-sdk:4.40.0' implementation 'com.android.support:recyclerview-v7:28.0.0' } apply plugin: 'com.google.gms.google-services'
额外说明
如果之后你打算迁移到AndroidX(推荐,因为support库已经停止维护),可以直接使用Android Studio的Refactor > Migrate to AndroidX工具,它会自动处理所有依赖版本和代码替换问题。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

