【问题标题】:All gms/firebase libraries must use the exact same version specification Android所有 gms/firebase 库必须使用完全相同的 Android 版本规范
【发布时间】:2018-08-12 20:56:09
【问题描述】:

同时尝试更新 'com.google.firebase:firebase-crash:10.2.0''com.google.firebase:firebase-crash:11.8.0' 我收到此错误

所有 gms/firebase 库必须使用完全相同的版本 规范(混合版本可能导致运行时崩溃)。成立 版本 11.8.0、10.2.0。例子包括 com.google.android.gms:play-services-basement:11.8.0 和 com.google.android.gms:play-services-base:10.2.0

我该如何解决这个错误?

app build.gradle

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.google.firebase.firebase-crash'

repositories {
    mavenCentral()
    maven {
        url "https://oss.sonatype.org/content/repositories/ksoap2-android-releases/"
    }
    maven { url 'https://maven.fabric.io/public' }
}

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"
    dexOptions {
        jumboMode = true
    }
    defaultConfig {
        applicationId "com.myapp.myapp"
        minSdkVersion 16
        multiDexEnabled true
        targetSdkVersion 27
        versionCode 6
        versionName '1.1'

        ndk {
            abiFilters "armeabi-v7a", "x86"
        }

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable true
        }
    }
    productFlavors {
    }
//    configurations {
//        all*.exclude group: 'org.apache.commons'
//    }

}

repositories {
    mavenCentral()
}

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

    }
}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':platform')
    compile project(':ahbottomnavigation')
    compile project(':mylibrary')
    compile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
        transitive = true
    }
    compile('com.google.android.gms:play-services-cast-framework:10.2.0') {
        exclude group: 'com.android.support', module: 'mediarouter-v7'
    }
    compile project(':bottom-bar')
    compile project(':journey')
    compile "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion"
    compile "com.android.support:recyclerview-v7:$rootProject.ext.supportLibraryVersion"
    compile 'com.google.firebase:firebase-crash:11.8.0'
    compile 'com.github.rahatarmanahmed:circularprogressview:2.5.0'
    compile 'com.flurry.android:analytics:6.9.0'
    compile "com.android.support:mediarouter-v7:$rootProject.ext.supportLibraryVersion"
    compile 'com.googlecode.android-query:android-query:0.25.9'
    compile 'com.github.hotchemi:android-rate:1.0.1'
    compile "com.android.support:cardview-v7:$rootProject.ext.supportLibraryVersion"
    compile "com.android.support:support-v4:$rootProject.ext.supportLibraryVersion"
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.facebook.android:facebook-login:4.31.0'
    testCompile 'junit:junit:4.12'
}

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

$rootProject.ext.supportLibraryVersion=='27.1.0'

【问题讨论】:

  • 提供你的应用 build.gradle

标签: android firebase android-gradle-plugin


【解决方案1】:

我不知道您的子项目的 build.gradle 是什么样的,如果您使用任何com.google. 子项目内的库。

但是您的compile('com.google.android.gms:play-services-cast-framework:10.2.0') 应该具有相同的版本11.8.0

【讨论】:

    【解决方案2】:

    需要将以下依赖改为11.8.0

    compile('com.google.android.gms:play-services-cast-framework:10.2.0') {
        exclude group: 'com.android.support', module: 'mediarouter-v7'
    }
    

    因为使用11.8.0的firebase-crash

    compile 'com.google.firebase:firebase-crash:11.8.0'
    

    【讨论】:

      【解决方案3】:

      所有 google gms 依赖项和 firebase 依赖项必须具有相同的版本号。例如。在您的情况下,您将 11.8.0 用于 Firebase,但将 10.2.0 用于 'com.google.android.gms:play-services-cast-framework:10.2.0'

      【讨论】:

        【解决方案4】:

        首先,您所指的 google play services 和 firebase 的版本已经相当老了。现在,请看以下内容:

        Google Play 服务 - latest set of libraries

        Firebase - latest set of libraries

        其次,升级后,您可能会发现无法获得所有库的相同版本,这是设计使然。正如他们在 2018 年 5 月的博文 announcing new SDK versioning 中所写,Google 现在使用新的版本控制系统。所以不再适合使用所有相同的版本号。根据谷歌的说法,升级到 Android Studio 3.1 以停止收到该警告。

        【讨论】:

          猜你喜欢
          • 2018-10-10
          • 1970-01-01
          • 2018-05-04
          • 1970-01-01
          • 2017-11-12
          相关资源
          最近更新 更多