java 无法获取提供程序 com.google.android.gms.measurement.AppMeasurementContentProvider

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/36098918/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 00:57:18  来源:igfitidea点击:

Unable to get provider com.google.android.gms.measurement.AppMeasurementContentProvider

javaandroidgoogle-cloud-messaginggoogle-play-services

提问by Giru Bhai

I tried to Set up GCM in my project as given in Set up a GCM Client App on Androidand to Set Up Google Play Servicesadded dependency

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

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

to the dependency section of my application's build.gradlefile.

到我的应用程序的build.gradle文件的依赖项部分。

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

并在根 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'
}

It's building fine, but it crashes on launch with the following stack trace :

它构建良好,但在启动时崩溃并显示以下堆栈跟踪:

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)

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(Native Method)?在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)?在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 主要(ActivityThread.java:5417)?在 java.lang.reflect.Method.invoke(Native Method)?在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)?在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 主要(ActivityThread.java:5417)?在 java.lang.reflect.Method.invoke(Native Method)?在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)?在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Also tried related stack questions:

还尝试了相关的堆栈问题:

  1. Updating Play services from 8.1 to 8.3 with Proguard enabled
  2. Error on some devices - couldn't find class 'com.google.android.gms.measurement.internal.zzz'
  1. 在启用 Proguard 的情况下将 Play 服务从 8.1 更新到 8.3
  2. 某些设备上的错误 - 找不到类“com.google.android.gms.measurement.internal.zzz”

As answered in 1st link tried classpath

正如第一个链接中所回答的,尝试了类路径

classpath 'com.google.gms:google-services:1.5.0'

and as answered in 2nd link,tried Multidex also with no success.

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

Also tried for Application Measurementadding

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

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <integer name="google_app_measurement_enable">0</integer>
</resources>

as suggested in Play Services Release notes.

正如Play 服务发行说明中所建议的那样

Note : sample code running.

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



Update :

更新 :

Interesting thing is that same error even if I add only dependency

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

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

in my app gradle file(Note : Only one line added in Existing project).And there is no error after adding

在我的应用程序 gradle 文件中(注意:在现有项目中只添加了一行)。添加后没有错误

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

i.e. the token works on 8.1.0.Interesting,isn't?

即令牌在8.1.0 上工作。有趣,不是吗?

回答by SBerg413

Did you remember to add the plugin to the endof your app-level build.gradle file? ...

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

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

You specifically need to add it to the very endof the file.

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

Take a look here for reference: https://github.com/googlesamples/google-services/blob/master/android/gcm/app/build.gradle

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

There is also a bug report opened on this issue: Issue 193112

还有一个关于这个问题的错误报告:问题 193112

回答by Android Enthusiast

Try to change your classpath dependency, instead of 'classpath 'com.google.gms:google-services:2.0.0-beta6'', use classpath ' classpath 'com.google.gms:google-services:1.5.0''.

尝试更改您的类路径依赖项,而不是 ' classpath 'com.google.gms:google-services:2.0.0-beta6'',使用类路径 ' classpath 'com.google.gms:google-services:1.5.0'' .

Here is a related stack overflow ticket, you may check the solution offered by community:. It was stated that they already filed bug ticket and the said fix has been implemented in release 1.5.0 of the foot service plugin.

这是一个相关的 堆栈溢出票,您可以查看社区提供的解决方案:。据说他们已经提交了错误票,并且该修复已在足部服务插件的 1.5.0 版中实施。

回答by redochka

From Android studio menu go to:

从 Android Studio 菜单转到:

  • Build → Clean Project

  • Build → Rebuild Project

  • Run the app. No more crash.

  • 构建 → 清理项目

  • 构建 → 重建项目

  • 运行应用程序。没有更多的崩溃。

Note: I am using the latest version of play-services:

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

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