"com.android.support:appcompat-v7:27.1.1" 与 "com.google.android.gms:play-services-maps:15.0.1" 发生冲突?

4

我希望使用Google地图,但依赖项(com.google.android.gms:play-services-maps:15.0.1)与'com.android.support:appcompat-v7:27.1.1'发生了冲突..有人可以帮忙吗? 这是我的gradle文件

apply plugin: 'com.android.application'

android {
  compileSdkVersion 27
  defaultConfig {
    applicationId "com.gamecodeschool.mapso"
    minSdkVersion 18
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  }
  buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])
  implementation 'com.android.support:appcompat-v7:27.1.0'
  implementation 'com.google.android.gms:play-services-maps:15.0.1'
  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'
}

我的顶层构建文件

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
       google()
       jcenter()
      }
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.3'


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
   delete rootProject.buildDir
}

1
你必须至少提到你遇到了什么错误,这样人们才能帮助你,冲突可能以很多不同的方式发生。 - Hemanth S
谢谢。当您将appcompat-v7更新到27.1.1时会发生什么? - Michael Dodd
几乎一样的错误。 - moumenShobakey
将以下内容添加到您顶层的 build.gradle 文件的 dependencies 部分中:classpath 'com.google.gms:google-services:4.0.1' - Michael Dodd
1
我已经添加了它,但令人遗憾的是我仍然收到相同的错误信息,红线出现在“com.android.support:appcompat-v7:27.1.1”下面,提示“所有com.android.support库都必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。发现的版本有27.1.1、26.1.0。例如包括com.android.support:animated-vector-drawable: 27.1.1和com.android.support:support-media-compat:26.1.0。” - moumenShobakey
显示剩余7条评论
2个回答

4
我在尝试添加 `com.google.android.gms:play-services-base:15.0.1` 时遇到了同样的问题。
在终端中,如果使用 `./gradlew app:dependencies` 命令查看依赖树,您会看到包含以下内容:
+--- com.google.android.gms:play-services-maps:15.0.1
|    +--- com.google.android.gms:play-services-base:[15.0.1,16.0.0) -> 15.0.1
|    |    +--- com.google.android.gms:play-services-basement:[15.0.1] -> 15.0.1
|    |    |    \--- com.android.support:support-v4:26.1.0
|    |    |         +--- com.android.support:support-compat:26.1.0 -> 27.1.0 (*)
|    |    |         +--- com.android.support:support-media-compat:26.1.0

显然,这会导致冲突,解决方法是改用com.android.support:appcompat-v7:26.1.0

此外,您还需要降低compileSdkVersiontargetSdkVersion的版本。


2
我有与@Gaurav相同的建议,但你可以从play-services中排除一个冲突的依赖项,而不是降级你的支持库。"最初的回答"
implementation 'com.android.support:appcompat-v7:28.0.0'

implementation('com.google.android.gms:play-services-location:16.0.0') {
     exclude group: 'com.android.support', module:'support-v4'
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接