所有com.google.android.gms库必须使用完全相同的版本规范吗?

时间:2016-07-05 15:05:50

标签: android gradle build android-gradle build.gradle

我在行compile 'com.google.android.gms:play-services-analytics:9.2.0'的构建等级中收到以下警告消息。这是什么意思?

All com.google.android.gms libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 9.2.0, 8.4.0. Examples include com.google.android.gms:play-services-basement:9.2.0 and com.google.android.gms:play-services-ads:8.4.0 less... (Ctrl+F1) 
There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion.)

这是我的应用build.gradle:

plugins {
    id "me.tatarka.retrolambda" version "3.2.5"
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion '23.0.3'

    defaultConfig {
        applicationId "com.elgami.customizer"
        minSdkVersion 15
        targetSdkVersion 24

        multiDexEnabled true // Enabling multidex support.
        renderscriptTargetApi 23
        renderscriptSupportModeEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            //runProguard false
            //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

repositories {
    mavenCentral()
    maven { url "https://jitpack.io" }
}

dependencies {
    compile 'com.facebook.android:audience-network-sdk:4.13.0'
    compile 'com.bartoszlipinski:recyclerviewheader2:2.0.1'
    compile 'com.ms-square:etsyblur:0.1.3'
    compile 'com.android.support:appcompat-v7:24.0.0'
    // recyclerview
    compile 'com.android.support:recyclerview-v7:24.0.0'
    // google analytics`
    compile 'com.google.android.gms:play-services-analytics:9.2.0'
    compile 'com.google.android.gms:play-services-appindexing:9.2.0'
    // amazon S3 uploads todo remove (5k methods)
    compile 'com.amazonaws:aws-android-sdk-s3:2.2.18'
    // paypal purchasing todo change to 'compile' (2k more methods..?)
    compile files('libs/PayPalAndroidSDK-2.7.1.jar')

    // Module dependency on ParseLoginUI library sources
    compile project(':ParseLoginUI')

    // Consider using these in future - Wes Feb 2016
    //compile 'com.parse:parseui-login-android:0.0.1'
    //compile 'com.parse:parseui-widget-android:0.0.1'

    // Parse
    compile 'com.parse:parse-android:1.13.0'
    compile 'com.parse:parsetwitterutils-android:1.10.5'
    compile 'com.parse:parsefacebookutils-v4-android:1.10.4@aar'

    // excluding bolts-android because parse-android uses bolts-tasks which conflicts
    // hint: use 'gradlew app:dependencies' to inspect
    compile('com.facebook.android:facebook-android-sdk:4.9.0') {
        exclude module: 'bolts-android'
        exclude module: 'bolts-tasks'
    }

    // butterknife
    compile 'com.jakewharton:butterknife:6.1.0'
    // app rater
    compile files('libs/AppRater.jar')

    // retrofit http api
    compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4'
    compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
    compile 'com.squareup.okhttp3:logging-interceptor:3.0.1'
    // reactivex
    compile 'io.reactivex:rxjava:1.1.1'
    compile 'io.reactivex:rxandroid:1.1.0'
    // picasso image loading
    compile 'com.squareup.picasso:picasso:2.5.2'
    // stripe for payment processing
    compile 'com.stripe:stripe-android:1.0.4'
}

项目级gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

1 个答案:

答案 0 :(得分:12)

我现在有同样的问题我将audience-network-sdk添加为

compile('com.facebook.android:audience-network-sdk:4.17.0') {
    exclude group: 'com.google.android.gms'
}

现在它不会在gradle上显示错误。但我现在没有实施广告,我希望它不会导致运行时错误。

ps:它就像一个魅力