web-dev-qa-db-ja.com

プロバイダーcom.google.Android.gms.measurement.AppMeasurementContentProviderを取得できません

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)

関連するスタックの質問も試しました:

  1. Proguardを有効にしてPlay開発者サービスを8.1から8.3に更新
  2. 一部のデバイスでエラーが発生しました-クラス 'com.google.Android.gms.measurement.internal.zzz'が見つかりませんでした

最初のリンクで答えたようにクラスパスを試しました

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で機能します。興味深いですね。

8
Giru Bhai

アプリレベルの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

5
SBerg413

Androidスタジオメニューから:

  • ビルド→クリーンプロジェクト

  • ビルド→プロジェクトの再構築

  • アプリを実行します。これ以上のクラッシュはありません。

注:最新バージョンのPlay開発者サービスを使用しています。

compile 'com.google.Android.gms:play-services:8.4.0'
1
redochka

'classpath' com.google.gms:google-services:2.0.0-beta6 ''の代わりに、クラスパスの依存関係を変更してみてください。を使用してください。 classpath'classpath 'com.google.gms:google-services:1.5.0' '。

これが関連する スタックオーバーフローチケット です。コミュニティが提供するソリューションを確認できます:。彼らはすでにバグチケットを提出しており、その修正はフットサービスプラグインのリリース1.5.0で実装されていると述べられました。

1