【问题标题】:com.google.android.gms.internal.firebase-perf.zzq.zzb(boolean)' on a null object referencecom.google.android.gms.internal.firebase-perf.zzq.zzb(boolean)' 在空对象引用上
【发布时间】:2018-05-22 04:07:39
【问题描述】:

环境

  • 安卓设备:MI 5\ MI 6
  • 安卓操作系统版本:8.0.0
  • Google Play 服务版本:无 google 服务
  • Firebase/Play 服务 SDK 版本:com.google.firebase:firebase-plugins:1.1.0com.google.firebase:firebase-perf:15.1.0
  • TargetSdkVersion : 26

问题

java.lang.NullPointerException

Attempt to invoke virtual method 'void     com.google.android.gms.internal.firebase-perf.zzq.zzb(boolean)' on a null object reference
com.google.android.gms.internal.firebase-perf.zzg.zzc(Unknown Source:2)
com.google.android.gms.internal.firebase-perf.zzk.run(Unknown Source:4)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
java.lang.Thread.run(Thread.java:764)

LogCat

FirebaseApp: Firebase API initialization failure.
java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at com.google.firebase.FirebaseApp.zza(Unknown Source:72)
    at com.google.firebase.FirebaseApp.zzc(Unknown Source:49)
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:119)
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:2)
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:28)
    at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source:4)
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1927)
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1902)
    at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source:23)
    at android.app.ActivityThread.installProvider(ActivityThread.java:6425)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:5939)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5851)
    at android.app.ActivityThread.-wrap1(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1689)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6683)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
 Caused by: java.lang.SecurityException: Failed to find provider com.google.android.gms.phenotype for user 0; expected to find a valid ContentProvider for this authority
    at android.os.Parcel.readException(Parcel.java:1942)
    at android.os.Parcel.readException(Parcel.java:1888)
    at android.content.IContentService$Stub$Proxy.registerContentObserver(IContentService.java:768)
    at android.content.ContentResolver.registerContentObserver(ContentResolver.java:1940)
    at android.content.ContentResolver.registerContentObserver(ContentResolver.java:1929)
    at com.google.android.gms.internal.measurement.zzwp.zza(Unknown Source:32)
    at com.google.android.gms.internal.measurement.zzws.zzry(Unknown Source:33)
    at com.google.android.gms.internal.measurement.zzws.get(Unknown Source:14)
    at com.google.android.gms.internal.measurement.zzex.get(Unknown Source:2)
    at com.google.android.gms.internal.measurement.zzfg.zziu(Unknown Source:7)
    at com.google.android.gms.internal.measurement.zzfg.isLoggable(Unknown Source:0)
    at com.google.android.gms.internal.measurement.zzfg.zza(Unknown Source:3)
    at com.google.android.gms.internal.measurement.zzfi.log(Unknown Source:12)
    at com.google.android.gms.internal.measurement.zzgl.<init>(Unknown Source:226)
    at com.google.android.gms.internal.measurement.zzgl.zzg(Unknown Source:28)
    at com.google.android.gms.measurement.AppMeasurement.getInstance(Unknown Source:0)
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.google.firebase.FirebaseApp.zza(Unknown Source:72) 
    at com.google.firebase.FirebaseApp.zzc(Unknown Source:49) 
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:119) 
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:2) 
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:28) 
    at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source:4) 
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1927) 
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1902) 
    at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source:23) 
    at android.app.ActivityThread.installProvider(ActivityThread.java:6425) 
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:5939) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5851) 
    at android.app.ActivityThread.-wrap1(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1689) 
    at android.os.Handler.dispatchMessage(Handler.java:105) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6683) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 



    java.lang.SecurityException: Failed to find provider com.google.android.gsf.gservices for user 0; expected to find a valid ContentProvider for this authority
    at android.os.Parcel.readException(Parcel.java:1942)
    at android.os.Parcel.readException(Parcel.java:1888)
    at android.content.IContentService$Stub$Proxy.registerContentObserver(IContentService.java:768)
    at android.content.ContentResolver.registerContentObserver(ContentResolver.java:1940)
    at android.content.ContentResolver.registerContentObserver(ContentResolver.java:1929)
    at com.google.android.gms.internal.firebase-perf.zza.zza(Unknown Source:38)
    at com.google.android.gms.internal.firebase-perf.zzq.<init>(Unknown Source:145)
    at com.google.android.gms.internal.firebase-perf.zzg.zzp(Unknown Source:127)
    at com.google.android.gms.internal.firebase-perf.zzg.zzb(Unknown Source:0)
    at com.google.android.gms.internal.firebase-perf.zzh.run(Unknown Source:2)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)


    java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.internal.firebase-perf.zzq.zzb(boolean)' on a null object reference
    at com.google.android.gms.internal.firebase-perf.zzg.zzc(Unknown Source:2)
    at com.google.android.gms.internal.firebase-perf.zzk.run(Unknown Source:4)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)

似乎是SecurityException导致Firebase API initialization failure,然后一些NullPointerExceptions来了。

我尝试降级Performance Tools,没用。 然后我将TargetSdkVersion 从 26 设置为 23,问题就解决了。

【问题讨论】:

  • 在清单中授予 Internet 权限?
  • 如果您使用的是 Android Studio 3.X,the recommended versioncom.google.firebase:firebase-plugins 是 1.1.5。还有firebase-perf:15.2.0
  • 我收到同样的错误Caused by: java.lang.SecurityException: Failed to find provider com.google.android.gms.phenotype for user 0; expected to find a valid ContentProvider for this authority firebase 这个错误只在我使用Run App 时发生,如果我正确签署了apk 并安装它,错误就会消失。
  • @ABK 权限已经存在
  • @Michal_196 我更新了firebase sdk,生成一个签名的发布请求,但再次发生崩溃:(

标签: android firebase


【解决方案1】:

将此添加到应用程序级别的底部apply plugin: 'com.google.gms.google-services' ' 并使用this最新的firebase依赖,如果您使用的是android studio 3.x版本,请使用'com.google.firebase:firebase-plugins:1.1.5'

【讨论】:

  • 我已经检查了我的应用程序的build.gradleapply plugin: 'com.google.gms.google-services' 已经存在
  • 使用这个更新依赖 com.google.firebase:firebase-perf:15.2.0 我已经更新了我的答案让我知道它是否有帮助
  • 问题依旧存在,我更新到com.google.firebase:firebase-perf:15.2.0com.google.firebase:firebase-plugins:1.1.5
  • 您能提供您的应用级 gradle 信息吗?
【解决方案2】:

The documentation 表示 Firebase 性能监控依赖于 Google Play 服务:

在开始之前,您需要在您的环境中进行一些设置:

  • 运行 Android 4.0 (Ice Cream Sandwich) 或更高版本以及 Google Play 服务 15.2.0 或更高版本的设备
  • 来自 Google 存储库的 Google Play 服务 SDK,可在 Android SDK 管理器中获得
  • Android Studio 的最新版本,2.2 版或更高版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 2017-07-16
    • 1970-01-01
    • 2015-08-21
    • 2021-05-04
    • 2016-06-12
    相关资源
    最近更新 更多