如何解决依赖冲突?

时间:2018-06-03 16:33:11

标签: android android-gradle

冲突在哪里,如何解决,以及在未来发现冲突的根源?

  
      
  • 出了什么问题:任务执行失败':app:processDebugGoogleServices'。      
        

    请通过更新google-services插件的版本来修复版本冲突(有关最新版本的信息是     可在     https://bintray.com/android/android-tools/com.google.gms.google-services/)     或将com.google.android.gms的版本更新为16.0.0。

      
  •   
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
    minSdkVersion 17
    targetSdkVersion 27
}


implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'


implementation 'com.google.android.gms:play-services-analytics:16.0.0'
implementation 'com.google.android.gms:play-services-location:15.0.1'
implementation 'com.google.android.gms:play-services-maps:15.0.1'
implementation 'com.google.android.gms:play-services-places:15.0.1'

implementation 'com.google.maps.android:android-maps-utils:0.4.3'

implementation 'com.google.firebase:firebase-messaging:17.0.0'
implementation 'com.google.firebase:firebase-crash:16.0.0'


apply plugin: 'com.google.gms.google-services'

2 个答案:

答案 0 :(得分:2)

您的一个依赖是拥有com.google.android.gms的不同版本。

我从github page查看了com.google.maps.android:android-maps-utils:0.4.3。我发现它使用的是旧版本的地图,请参见上页。

dependencies {
    compile 'com.google.android.gms:play-services-maps:11.0.4'
}

作为解决方案,您可以

  1. 将您的播放服务依赖版本降级为 maps-utils
  2. 或者您可以通过从github页面下载来升级此依赖项gms版本,并在项目中添加为模块。
  3. 请注意,如果您在应用中使用最新版本的gms依赖项,请使用项目级build.gradle中的最新 google-services 。像

    classpath 'com.google.gms:google-services:3.3.0'
    

    修改 使用此配置降级您的gms和firebase版本。

    def GMS_VERSION = "11.0.4"
    def FCM_VERSION = "11.0.4"
    
    dependencies {
    // ...
        implementation "com.google.android.gms:play-services-analytics:$GMS_VERSION"
        implementation "com.google.android.gms:play-services-location:$GMS_VERSION"
        implementation "com.google.android.gms:play-services-maps:$GMS_VERSION"
        implementation "com.google.android.gms:play-services-places:$GMS_VERSION"
    
        implementation 'com.google.maps.android:android-maps-utils:0.4.3'
    
        implementation "com.google.firebase:firebase-messaging:$FCM_VERSION"
        implementation "com.google.firebase:firebase-crash:$FCM_VERSION"
    }
    

答案 1 :(得分:0)

  

您的一个依赖是使用不同版本的com.google.android.gms

准确。在谷歌,他们似乎像(旧笔记)那样修复它:

  configurations.all {
      resolutionStrategy.force "com.android.support:support-annotations:$rootProject.supportLibraryVersion"
  }

请找出常用/最新使用的版本,然后使用resolutionStrategy.force