Google Play Services GCM 9.2.0が9.0.0に「更新」するよう要求する


178

そこで今朝、プロジェクトライブラリの最新バージョンへの更新を開始しました。

GCMを最新バージョン9.2.0に更新しようとしていますが、次のエラーが発生します。

エラー:タスク ':app:processDebugGoogleServices'の実行に失敗しました。google-servicesプラグインのバージョンを更新して、バージョンの競合を修正してください(最新バージョンに関する情報は、https://bintray.com/android/android-tools/com.google.gms.google-services/で入手できます)または、com.google.android.gmsのバージョンを9.0.0に更新します。

これは私が私のコードを持っている方法です:

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.2'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}

その後:

dependencies {
    ...

    compile "com.google.android.gms:play-services-gcm:9.2.0"

    ...
}

同じ問題を抱えている/同じ問題を修正している人はいますか?

ありがとう。

編集

どうやらapp / build.gradleファイルの下部にGSMプラグインを適用する必要があります。そうでない場合、バージョン9.2.0はプロジェクトで競合を引き起こします。

参考までに、これは私のapp / build.gradleファイルが次のようになっている方法です。

apply plugin: "com.android.application"
apply plugin: "com.neenbedankt.android-apt"

android {
    ...
}

dependencies {
    ...

    // Google Cloud Messaging
    compile "com.google.android.gms:play-services-gcm:9.2.0"

    ...
}

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

ここで同じ問題、私は9.0.0にロールバックしました
mbonnin '30 / 06/16

@mbonnin私は同じことをしてしまいました。しかし、きっとここで何が起こっているのか知りたいと思います。まだ答えを見つけるのは幸運ではありません。
Herrmartell

2
そして、9.0.0にこのバグstackoverflow.com/questions/37361651/…があり、解決策は9.2.0に更新するようです...これは、ここのバグのために不可能です:-(
mbonnin

6
Gusthemaが怒鳴るようにbuild.gradleファイルの最後にプラグインを適用すると機能します
mbonnin

この問題を正しい方法で修正する方法については、こちらの投稿をご覧ください
ペドロバレラ

回答:


507

あなたはラインを持っていますか

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

アプリのbuild.gradleファイルの下部にある行?

上部にあるときにいくつかのエラーがありここに書かれているように下部にあるはずです。


11
これは真実ではありません
。gmsの

1
私は修正された立場です。とにかく、これは問題を解決しません。
Herrmartell

1
初めて試した理由がわかりませんでした。@mbonninのコメントのためにもう一度試してみましたが、現在は機能しています。ありがとうございました。
Herrmartell 16

9
この行をファイルの先頭に追加しましたが、一番下に置いた後に機能しました。
SHA2NK 2016年

2
下部にプラグインを追加すると、バージョンの競合が解決されました。
プラティマ2017年

54

この行をapp-moduleの(プロジェクトのルートではない)gradleファイルの一番下に置くだけです。

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

次に、プロジェクトを再構築します。


11

私は同じ問題を抱えていました、今日2016年10月-06私はこれで解決しました:

9.で始まるすべての依存関係を変更しました。9.6.1にSDKバージョン24およびターゲットバージョン17でコンパイルしました。

私のソリューションには、認証よりも多くのものを使用したため、別のパッケージがあります。

以下のコードでbuild.gradle(Module:app)を変更したら、それを実行します。

  1. applicationId "com.YOUR_PACKAGE_HERE"という単語を含む行にパッケージNAMEを入力します

  2. プロジェクトを同期し(Ctrl + alt + v)、再度ビルドします。

これは私のために働いたファイルbuid.gradle(Module:app)のコードです:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "com.YOUR_PACKAGE_HERE"
        minSdkVersion 24
        targetSdkVersion 17
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    compile 'com.google.firebase:firebase-core:9.6.1'
    compile 'com.google.firebase:firebase-database:9.6.1'

    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'

    compile 'com.google.firebase:firebase-crash:9.6.1'
    testCompile 'junit:junit:4.12'

    compile 'com.google.firebase:firebase-messaging:9.6.1'

    compile 'com.google.firebase:firebase-ads:9.6.1'


    compile 'com.google.firebase:firebase-auth:9.6.1'


    compile 'com.google.android.gms:play-services:9.6.1'

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

6

以前のバージョンでも同じ状況でした。新しいバージョンのcom.google.android.gmsライブラリが常にプラグインの前にリリースされるのは不愉快です。古いプラグインと互換性がないため、新しいバージョンを使用することは不可能です。今プラグインが必要かどうかわかりません(グーグルドキュメントは最低)。そうではなかった時代を覚えています。唯一の方法は、新しいプラグインバージョンを待つか、プラグインの依存関係を削除することですが、前述のように、gcmがなくてもgcmが機能するかどうかはわかりません。9.2.0バージョンの主な機能であることがわかっているのは、新しいAwareness API https://inthecheesefactory.com/blog/google-awareness-api-in-action/enです。必要がなければ、9.0を使用できます。問題なく0バージョン。


ああ、図に行きます。特に明記していないドキュメントがあるので、最新バージョンは必要なプラグインでロールアウトすると想定しました。私の知る限り、GCMを機能させるにはプラグインが必要なので、これは手動による更新の確認ソリューションだと思います。
Herrmartell

1
確かに@yaneqのgoogle docsは最悪ですが、今すぐ同じ問題が発生しました
Lutaaya Huzaifah Idris

5

com.google。*バージョンを同じバージョンに変更するGustavomclsの解決策は私のために働いた。

buid.gradle(Module:app)で両方の依存関係を9.2.1に変更します

compile 'com.google.firebase:firebase-ads:9.2.1'
compile 'com.google.android.gms:play-services:9.2.1'

私もこの問題をFirebaseのために発生しましたが、Firebaseのバージョンを9.2.1にダウングレードするこのソリューションが好きではありません
Sam Bellerose

2

app/build.gradleapp-moduleから開き、依存関係がブロックした後、以下の行を書き換えます。これにより、プラグインは、使用しているPlayサービスのバージョンを判別できます

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

私はここからこのアイデアを得ました。このチュートリアルの2番目のポイントは、上記のプラグイン行がapp/build.gradleファイルの最下部にあるため、依存関係の衝突が発生しないことです。それがあなたを助けることを願っています。


なぜ半年前に出された答えを繰り返すのですか?
2017年

2

CordovaまたはIonicハイブリッドアプリの場合

Firebase Cloud Messaging(FCM)を統合した後、Ionic 1 Cordovaビルドで非常によく似た問題が発生します

次の手順でこの問題を修正しました

したがって、1つの修正は、platforms / android open project.properties(それはファイル)の中で、次のようになります。

cordova.system.library.1=com.google.android.gms:play-services-ads:+
cordova.system.library.2=com.google.firebase:firebase-core:+
cordova.system.library.3=com.google.firebase:firebase-messaging:+

を交換

+

次のように、ターゲットバージョン番号で署名します

cordova.system.library.1=com.google.android.gms:play-services-ads:9.0.0
cordova.system.library.2=com.google.firebase:firebase-core:9.0.0
cordova.system.library.3=com.google.firebase:firebase-messaging:9.0.0

ファイルを保存します

次に、ビルドを使用して

 ionic cordova run android

これがすべての人に役立つことを願っています


これはエラーを変更しました。何千もの解決策を試しても同じエラーが発生するだけなので、これは良いことです。
宇宙

2

グラドルの下部にこの行を追加します。

プラグインを適用: 'com.google.gms.google-services'

それはそれが上手くいかないので。私は同様の問題に直面していました。


1

Firebaseも含まれている場合は、エラーが示すようにそれらを同じバージョンにします。


0

位置情報サービスを使用するまでこの問題はありませんでした。その時点apply plugin: 'com.google.gms.google-services'で、ファイルを上部ではなく下部に配置する必要がありました。その理由は、上部に配置すると衝突の問題が発生するためです。下部に配置すると、これらの問題を回避できます。


-1

ターゲットSDKSDKデバイスよりも高い可能性があります。変更してください。たとえば、デバイスはAPI 23を実行していますが、ターゲットSDKは25です。25を23に変更します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.