2016-08-08 65 views
50

我得到一個錯誤說版本衝突升級發揮服務9.4.0的Android Studio 2.2中

Error:Execution failed for task ':app:processDebugGoogleServices'. 
    > Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 9.0.0. 

我試圖尋找在https://bintray.com/android/android-tools/com.google.gms.google-services/和com.google.gms:谷歌服務:3.0.0似乎是最新的。這是我的gradle項目

dependencies { 
      classpath 'com.android.tools.build:gradle:2.1.2' 
      classpath 'com.google.gms:google-services:3.0.0' 
      // NOTE: Do not place your application dependencies here; they belong 
      // in the individual module build.gradle files 
     } 

這是我的應用程序gradle這個看起來像

buildscript { 
     repositories { 
      maven { url 'https://maven.fabric.io/public' } 
     } 

     dependencies { 
      classpath 'io.fabric.tools:gradle:1.+' 
     } 
    } 
    apply plugin: 'com.android.application' 
    apply plugin: 'io.fabric' 
    apply plugin: 'com.google.gms.google-services' 

    repositories { 
     maven { url 'https://maven.fabric.io/public' } 
    } 


    android { 
     compileSdkVersion 24 
     buildToolsVersion "24.0.1" 
     useLibrary 'org.apache.http.legacy' 

     defaultConfig { 
      applicationId "com.myapp.preburn" 
      minSdkVersion 10 
      targetSdkVersion 24 
      versionCode 14 
      versionName "2.0.1" 
      renderscriptTargetApi 22 
      renderscriptSupportModeEnabled true 
     } 
     buildTypes { 
      release { 
       lintOptions { 
        disable 'MissingTranslation' 
       } 
       minifyEnabled false 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      } 
     } 
    } 

    android { 
     packagingOptions { 
      exclude 'META-INF/DEPENDENCIES' 
      exclude 'META-INF/NOTICE' 
      exclude 'META-INF/LICENSE' 
     } 
    } 

    repositories { 
     mavenCentral() 
     jcenter() 
    } 

    dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile fileTree(dir: 'libs', include: 'Parse-*.jar') 
     compile 'com.parse.bolts:bolts-android:1.2.0' 
     compile 'com.android.support:appcompat-v7:24.1.1' 
     compile 'com.mcxiaoke.volley:library:1.0.9' 
     compile 'com.google.android.gms:play-services-gcm:9.4.0' 
     compile 'com.google.android.gms:play-services-location:9.4.0' 
     compile 'com.google.android.gms:play-services-maps:9.4.0' 
     compile 'com.google.android.gms:play-services-ads:9.4.0' 
     compile 'com.google.android.gms:play-services-plus:9.4.0' 
     compile 'com.google.android.gms:play-services-analytics:9.4.0' 
     compile 'me.leolin:ShortcutBadger:[email protected]' 
     compile 'com.squareup.picasso:picasso:2.5.2' 
     compile files('libs/jsoup-1.7.3.jar') 
     compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
      transitive = true; 
     } 
     compile files('libs/InMobi-5.2.2.jar') 
     compile files('libs/libadapterinmobi.jar') 
     compile files('libs/StartAppAdMobMediation-1.0.1.jar') 
     compile files('libs/StartAppInApp-3.3.1.jar') 
     compile 'org.adw.library:discrete-seekbar:1.0.1' 
     compile 'com.pnikosis:materialish-progress:1.0' 
    } 

如果我改打服務9.0.0一切編譯罰款。我在這裏錯過了什麼?

回答

147

您需要將apply plugin: 'com.google.gms.google-services'一行放在dependencies塊以下 - 這允許插件確定您正在使用的Play服務的版本。

+1

謝謝。這工作! – tbag

+5

是的,它的工作原理。只是好奇,我把應用插件.....頂部的塊,似乎不起作用。爲什麼它必須在塊之下? –

+9

@LongDao - 該文件與計算機程序比配置文件有更多共同之處 - 它是按順序讀取和執行的。通過在'dependencies'塊之前放置'apply plugin'行,插件會在知道您實際使用的Google Play服務的版本之前執行並配置您的版本 - 它實際上不能「預讀」 – ianhanniballake

61

如果您有Firebase依賴關係。更新版本,以便與谷歌的服務版本: 例子:

//Firebase Crashreports 
compile 'com.google.firebase:firebase-crash:9.6.1' 
//Firebase Analytics 
compile 'com.google.firebase:firebase-core:9.6.1' 
compile 'com.google.android.gms:play-services-analytics:9.6.1' 
compile 'com.google.android.gms:play-services-gcm:9.6.1' 

所有必須具有相同的版本9.6.1

+0

這爲我工作,即使在文檔谷歌播放服務使用9.8.0,你必須MATCH版本與Firebase的依賴。 – aldok

+1

感謝您的回答。注意到所有play-services和firebase-crash的版本都應該匹配(在我的情況下爲9.4.0) – onexf

+0

感謝您的回答。它爲我工作。 –

1

你有沒有在你到底行

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

線build.gradle文件?

這個錯誤主要是當「應用插件」放在頂部時。

1

我遇到了同樣的問題。

我的解決辦法是不添加任何內容的代碼,但下載 Google Support Repository - 你可以找到它在工具 -> Android -> SDK Manager -> SDK Tools

3

只寫這個依賴後

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

只是適用下方的谷歌服務依賴關係。 爲我工作。

+0

感謝也工作形式我。 – Jaydeep

-1

剛去/platforms/android/cordova-plugin-fcm/*-FCMPlugin.gradle

找到

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

再次

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

構建替換它。

0

我安裝了Google知識庫:

Android> SDK Manager。 更新Android Studio SDK管理器:單擊SDK工具,展開支持存儲庫,選擇Google存儲庫,然後單擊確定。

0

我正面臨類似的問題。在插件添加的頂部,它不適用於我。因此,在插件底部添加插件。 這解決了我的衝突版本的問題

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

,並添加依賴IT這行

compile 'com.google.firebase:firebase-core:9.2.0' 
compile 'com.google.firebase:firebase-messaging:9.2.0' 
compile 'com.google.android.gms:play-services-location:9.2.0' 
compile 'com.google.android.gms:play-services-places:9.2.0' 
-1

這是問題實際上是把我的很多時間,但我解決它通過應用插件com.google.gms.google-services

重要提示:請確保不要在gradle文件的頂部使用它,並在依賴塊之後使用它。