无法获取提供者com.google.android.gms.measurement.AppMeasurementContentProvider [英] Unable to get provider com.google.android.gms.measurement.AppMeasurementContentProvider
问题描述
我尝试按照设置GCM客户端中的说明在项目中设置GCM Android版应用并设置Google Play服务增加了依赖性
I tried to Set up GCM in my project as given in Set up a GCM Client App on Android and to Set Up Google Play Services added dependency
compile "com.google.android.gms:play-services-gcm:8.4.0"
转到应用程序 build.gradle 文件的依赖项部分.
to the dependency section of my application's build.gradle file.
然后在根gradle文件中添加示例项目(从$ git clone https://github.com/googlesamples/google-services.git
克隆的示例)中给定的类路径为
And In the root gradle file add classpath as given in sample project(Sample cloned from $ git clone https://github.com/googlesamples/google-services.git
) as
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-beta6'
classpath 'com.google.gms:google-services:2.0.0-beta6'
}
它运行良好,但是在启动时由于以下堆栈跟踪而崩溃:
It's building fine, but it crashes on launch with the following stack trace :
java.lang.RuntimeException:无法获取提供程序 com.google.android.gms.measurement.AppMeasurementContentProvider: java.lang.NullPointerException:空引用 在android.app.ActivityThread.installProvider(ActivityThread.java:5156) 在android.app.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.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5417) 在java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:java.lang.NullPointerException:空引用 位于com.google.android.gms.common.internal.zzx.zzy(未知来源) com.google.android.gms.measurement.internal.zzt.zzaU(未知来源) 在com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(未知 来源) 在android.content.ContentProvider.attachInfo(ContentProvider.java:1748) 在android.content.ContentProvider.attachInfo(ContentProvider.java:1723) 在android.app.ActivityThread.installProvider(ActivityThread.java:5153) 在android.app.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.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5417) 在java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
java.lang.RuntimeException: Unable to get provider com.google.android.gms.measurement.AppMeasurementContentProvider: java.lang.NullPointerException: null reference at android.app.ActivityThread.installProvider(ActivityThread.java:5156) at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748) at 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) 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) Caused by: java.lang.NullPointerException: null reference at com.google.android.gms.common.internal.zzx.zzy(Unknown Source) 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) at 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) 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)
还尝试了相关的堆栈问题:
Also tried related stack questions:
- Updating Play services from 8.1 to 8.3 with Proguard enabled
- Error on some devices - couldn't find class 'com.google.android.gms.measurement.internal.zzz'
在第一个链接中回答,尝试使用类路径
As answered in 1st link tried classpath
classpath 'com.google.gms:google-services:1.5.0'
并且在第二个链接中回答,Multidex也没有成功.
and as answered in 2nd link,tried Multidex also with no success.
还尝试了应用程序测量添加
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="google_app_measurement_enable">0</integer>
</resources>
根据 Play服务发行说明中的建议.
注意:示例代码正在运行.
Note : sample code running.
更新:
即使我仅添加依赖项,有趣的是那个错误
Interesting thing is that same error even if I add only dependency
compile "com.google.android.gms:play-services-gcm:8.4.0"
在我的应用gradle文件中(注意:在现有项目中仅添加了一行).添加后没有错误
in my app gradle file(Note : Only one line added in Existing project).And there is no error after adding
compile "com.google.android.gms:play-services-gcm:8.1.0"
即该令牌适用于 8.1.0 .是不是很有趣?
i.e. the token works on 8.1.0.Interesting,isn't?
推荐答案
您是否记得将插件添加到应用级build.gradle文件的 end 了? ...
Did you remember to add the plugin to the end of your app-level build.gradle file? ...
apply plugin: 'com.google.gms.google-services'
您特别需要将其添加到文件的两端.
You specifically need to add it to the very end of the file.
在这里参考: https://github.com/googlesamples/google-services/blob/master/android/gcm/app/build.gradle
关于此问题,还打开了一个错误报告:问题193112
There is also a bug report opened on this issue: Issue 193112
这篇关于无法获取提供者com.google.android.gms.measurement.AppMeasurementContentProvider的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!