AndroidでGCMクライアントアプリを設定する および Google Play開発者サービスを設定する 依存関係を追加して、プロジェクトでGCMを設定しようとしました。
compile "com.google.Android.gms:play-services-gcm:8.4.0"
アプリケーションのbuild.gradleファイルの依存関係セクションに移動します。
そして、ルートgradleファイルで、サンプルプロジェクト($ git clone https://github.com/googlesamples/google-services.git
から複製されたサンプル)で指定されたクラスパスを次のように追加します。
dependencies {
classpath 'com.Android.tools.build:gradle:2.0.0-beta6'
classpath 'com.google.gms:google-services:2.0.0-beta6'
}
正常に構築されていますが、起動時に次のスタックトレースでクラッシュします。
Java.lang.RuntimeException:プロバイダーcom.google.Android.gms.measurement.AppMeasurementContentProviderを取得できません:Java.lang.NullPointerException:Android.appのAndroid.app.ActivityThread.installProvider(ActivityThread.Java:5156)でnull参照。 Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4688)のActivityThread.installContentProviders(ActivityThread.Java:4748)Android.app.ActivityThread.-wrap1(ActivityThread.Java)のAndroid.app.ActivityThread $ H.handleMessage( ActivityThread.Java:1405)at Android.os.Handler.dispatchMessage(Handler.Java:102)at Android.os.Looper.loop(Looper.Java:148)at Android.app.ActivityThread.main(ActivityThread.Java:5417 )at Java.lang.reflect.Method.invoke(Native Method)at com.Android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.Java:726)at com.Android.internal.os.ZygoteInit.main(ZygoteInit .Java:616)原因:Java.lang.NullPointerException:com.google.Android.gms.common.internal.zzx.zzy(Unknown Sou rce)at com.google.Android.gms.measurement.internal.zzt.zzaU(Unknown Source)at com.google.Android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)at Android.content.ContentProvider.attachInfo(ContentProvider) .Java:1748)at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1723)at Android.app.ActivityThread.installProvider(ActivityThread.Java:5153)at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4748) Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4688)at Android.app.ActivityThread.-wrap1(ActivityThread.Java)at Android.app.ActivityThread $ H.handleMessage(ActivityThread.Java:1405)at Android.os .Handler.dispatchMessage(Handler.Java:102)at Android.os.Looper.loop(Looper.Java:148)at Android.app.ActivityThread.main(ActivityThread.Java:5417)atJava.lang.reflect.Method。 com.Android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.Java:726)のinvoke(ネイティブメソッド)com.Android.interna l.os.ZygoteInit.main(ZygoteInit.Java:616)
関連するスタックの質問も試しました:
最初のリンクで答えたようにクラスパスを試しました
classpath 'com.google.gms:google-services:1.5.0'
そして2番目のリンクで答えられたように、Multidexも試しましたが成功しませんでした。
アプリケーション測定追加も試みました
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="google_app_measurement_enable">0</integer>
</resources>
Play開発者サービスのリリースノート で提案されているように。
注:実行中のサンプルコード。
更新:
興味深いのは、依存関係だけを追加しても同じエラーです
compile "com.google.Android.gms:play-services-gcm:8.4.0"
私のアプリのgradleファイル(注:既存のプロジェクトに追加されたのは1行のみ)そして追加後のエラーはありません
compile "com.google.Android.gms:play-services-gcm:8.1.0"
つまり、トークンは8.1.0で機能します。興味深いですね。
アプリレベルのbuild.gradleファイルのendにプラグインを追加することを覚えていますか? .。
apply plugin: 'com.google.gms.google-services'
具体的には、ファイルの最後に追加する必要があります。
参考のためにここを見てください: https://github.com/googlesamples/google-services/blob/master/Android/gcm/app/build.gradle
この問題に関して開かれたバグレポートもあります: Issue 193112
Androidスタジオメニューから:
ビルド→クリーンプロジェクト
ビルド→プロジェクトの再構築
アプリを実行します。これ以上のクラッシュはありません。
注:最新バージョンのPlay開発者サービスを使用しています。
compile 'com.google.Android.gms:play-services:8.4.0'
'classpath' com.google.gms:google-services:2.0.0-beta6 ''の代わりに、クラスパスの依存関係を変更してみてください。を使用してください。 classpath'classpath 'com.google.gms:google-services:1.5.0' '。
これが関連する スタックオーバーフローチケット です。コミュニティが提供するソリューションを確認できます:。彼らはすでにバグチケットを提出しており、その修正はフットサービスプラグインのリリース1.5.0で実装されていると述べられました。