play-services-ads 与 appcompat 冲突 [英] play-services-ads conflicts with appcompat

查看:38
本文介绍了play-services-ads 与 appcompat 冲突的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我将 implementation 'com.google.android.gms:play-services-ads:18.2.0' 添加到我的 build.gradle 时,Android Studio 会突出显示 implementation 'com.android.support:appcompat-v7:28.0.0' 出现错误:

When I add implementation 'com.google.android.gms:play-services-ads:18.2.0' to my build.gradle, Android Studio highlights implementation 'com.android.support:appcompat-v7:28.0.0' with the error:

Dependencies using groupId com.android.support and androidx.* can not be combined but found IdeMavenCoordinates{myGroupId='com.android.support', myArtifactId='versionedparcelable', myVersion='28.0.0', myPacking='aar', myClassifier='null'} and IdeMavenCoordinates{myGroupId='androidx.interpolator', myArtifactId='interpolator', myVersion='1.0.0', myPacking='aar', myClassifier='null'} incompatible dependencies

我的 build.gradle 是:

My build.gradle is:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    configurations.all {
        resolutionStrategy.force 'com.android.support:appcompat-v7:28.0.0'
    }
    defaultConfig {
        applicationId "com.XXXXXX.XXXXXX"
        minSdkVersion 14
        targetSdkVersion 28
        versionCode 3
        versionName "1.1.2"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.google.android.gms:play-services-ads:18.2.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

推荐答案

您正在使用

implementation 'com.google.android.gms:play-services-ads:18.2.0'

Google Play 服务在最新版本中迁移到 AndroidX.

Google Play services migrated to AndroidX in the latest release.

不能组合使用 groupId com.android.support 和 androidx.* 的依赖

Dependencies using groupId com.android.support and androidx.* can not be combined

这意味着您同时使用了支持库和 androidx 库.

It means that you are using both, support libraries and androidx libraries.

您可以:

  • 如下所述迁移到 androidx(在您的情况下,您必须将 appcompat 迁移到 implementation 'androidx.appcompat:appcompat:1.0.2')
  • 降级您的 google play 广告依赖项(但这不是真正的解决方案,因为您迟早必须迁移)

您可以查看官方发行说明:

警告:此版本是一个主要版本更新和重大更改.Google Play 服务和 Firebase 的最新更新包括以下更改:

Warning: This release is a MAJOR version update and breaking change. The latest update to Google Play services and Firebase includes the following changes:

从 Android 支持库迁移到 Jetpack (AndroidX) 库.除非您在应用中进行以下更改,否则库将无法使用:

Migration from Android Support Libraries to Jetpack (AndroidX) Libraries. Libraries will not work unless you make the following changes in your app:

  • com.android.tools.build:gradle 升级到 v3.2.1 或更高版本.
  • compileSdkVersion 升级到 28 或更高版本.
  • 更新您的应用以使用 Jetpack (AndroidX);按照迁移到 AndroidX 中的说明进行操作.
  • Upgrade com.android.tools.build:gradle to v3.2.1 or later.
  • Upgrade compileSdkVersion to 28 or later.
  • Update your app to use Jetpack (AndroidX); follow the instructions in Migrating to AndroidX.

这篇关于play-services-ads 与 appcompat 冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆