无法获得提供商com.google.android.gms.measurement.AppMeasurementContentProvider

Gir*_*hai 8 java android google-cloud-messaging google-play-services

我试图在我的项目中设置 GCM,如在Android设置GCM客户端应用程序设置Google Play服务添加的依赖关系中所示

  compile "com.google.android.gms:play-services-gcm:8.4.0"
Run Code Online (Sandbox Code Playgroud)

到我的应用程序的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'
}
Run Code Online (Sandbox Code Playgroud)

它正在构建正常,但它在启动时崩溃,具有以下堆栈跟踪:

java.lang.RuntimeException:无法获取提供者com.google.android.gms.measurement.AppMeasurementContentProvider:java.lang.NullPointerException:android.app上的android.app.ActivityThread.installProvider(ActivityThread.java:5156)中的null引用. ActivityThread.installContentProviders(ActivityThread.java:4748)在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)android.app.ActivityThread.-wrap1(ActivityThread.java)android.app.ActivityThread $ H.handleMessage( ActivityThread.java:1405)android.app.Handler.dispatchMessage(Handler.java:102)android.app.Looper.loop(Looper.java:148)android.app.ActivityThread.main(ActivityThread.java:5417) )com.android.internal.os.ZygoteInit.main中的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)中的java.lang.reflect.Method.invoke(Native Method)(ZygoteInit) .java:616)引起:java.lang.NullPointerException:com.google.android.gms.common.internal.zzx.zzy(Unknown Sou)的null引用 rce)com.google.android.gms.measurement.internal.zzt.zzaU(未知来源)at com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)at android.content.ContentProvider.attachInfo(ContentProvider .java:1748)在Android.app.ActivityThread.installProviders(ActivityThread.java:4748)的android.app.AtentThread.installProvider(ActivityThread.java:5153)的android.content.ContentProvider.attachInfo(ContentProvider.java:1723)在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)的android.app.ActivityThread.-wrap1(ActivityThread.java)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1405)在android.os .Handler.dispatchMessage(Handler.java:102)位于android.app.Looper.loop(Looper.java:148)的android.app.ActivityThread.main(ActivityThread.java:5417),位于java.lang.reflect.Method.在com.android.internal.os.Zygo的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)中调用(Native Method)teInit.main(ZygoteInit.java:616)

还试过相关的堆栈问题:

  1. 在启用Proguard的情况下将Play服务从8.1更新到8.3
  2. 某些设备出错 - 无法找到"com.google.android.gms.measurement.internal.zzz"类

正如第一个链接中的回答尝试了classpath

classpath 'com.google.gms:google-services:1.5.0'
Run Code Online (Sandbox Code Playgroud)

并且在第二个链接中回答,尝试过Multidex也没有成功.

还尝试了应用程序测量 添加

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <integer name="google_app_measurement_enable">0</integer>
</resources>
Run Code Online (Sandbox Code Playgroud)

正如Play服务发行说明中所述.

注意:示例代码正在运行.


更新:

即使我只添加依赖项,有趣的是同样的错误

  compile "com.google.android.gms:play-services-gcm:8.4.0"
Run Code Online (Sandbox Code Playgroud)

在我的app gradle文件中(注意:在现有项目中只添加了一行).添加后没有错误

compile "com.google.android.gms:play-services-gcm:8.1.0"
Run Code Online (Sandbox Code Playgroud)

即令牌适用于8.1.0.有趣,不是吗?

SBe*_*413 5

你记得插件添加到年底您的应用程序级的build.gradle的文件?...

apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

特别需要将其添加到最末端的文件.

请看这里参考:https://github.com/googlesamples/google-services/blob/master/android/gcm/app/build.gradle

此问题还有一个错误报告:问题193112

  • @GiruBhai - 我确实读过"正确"的问题,我的朋友.您没有提到您在Gradle文件中包含插件行.我还提到了关于这个问题的错误报告,其中有几个.我建议您仔细阅读这些错误报告.祝好运! (2认同)

red*_*hka 1

从 Android studio 菜单转到:

\n\n
    \n
  • 构建 \xe2\x86\x92 干净项目

  • \n
  • 构建 \xe2\x86\x92 重建项目

  • \n
  • 运行应用程序。不再有崩溃。

  • \n
\n\n

注意:我使用的是最新版本的播放服务:

\n\n
compile 'com.google.android.gms:play-services:8.4.0'\n
Run Code Online (Sandbox Code Playgroud)\n