Play Services 9.2.1中的Firebase NullPointerException

yuv*_*val 9 android firebase google-play-services

我在我的应用程序中将Google Play服务从8.4.0更新到9.2.1,并开始每天多次发生以下崩溃:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'byte[] java.lang.String.getBytes()' on a null object reference
       at android.util.Base64.decode(Base64.java:118)
       at com.google.firebase.iid.zzg.zzkl(Unknown Source)
       at com.google.firebase.iid.zzg.zzh(Unknown Source)
       at com.google.firebase.iid.zzd.zzb(Unknown Source)
       at com.google.firebase.iid.zzd.zzcxa(Unknown Source)
       at com.google.firebase.iid.zzd.zzbmu(Unknown Source)
       at com.google.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source)
       at com.google.firebase.iid.FirebaseInstanceId.zzcww(Unknown Source)
       at com.google.firebase.iid.FirebaseInstanceIdService.zzaa(Unknown Source)
       at com.google.firebase.iid.FirebaseInstanceIdService.zzm(Unknown Source)
       at com.google.firebase.iid.zzb$2.run(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud)

我没有明确包含Firebase,也没有从GCM迁移,但我的应用程序中确实有谷歌服务.我认为Firebase是通过我的其他播放服务集成或google-services插件的依赖来实现的.这是我的build.gradle文件的片段:

compile 'com.google.android.gms:play-services-analytics:9.2.1'
compile 'com.google.android.gms:play-services-appindexing:9.2.1'
compile 'com.google.android.gms:play-services-places:9.2.1'
compile 'com.google.android.gms:play-services-gcm:9.2.1'
Run Code Online (Sandbox Code Playgroud)

这种崩溃似乎非常相似,这一个,但它来自何处getInstance(),而不是getToken()所以我不知道是否有人知道,如果我失去了一个集成或类似的东西?我希望唯一的答案是不要等待谷歌修复.

更新:我通过仪表板将Firebase添加到我的应用程序,然后生成一个新google-services.json文件,重新打包我的应用程序并发布补丁.这似乎没有解决问题,因为我仍然看到新版本中Crashlytics的出现.

更新2:我还没有找到解决方案,但我注意到这些崩溃在Crashlytics逐渐减少.我第一天40,第二天30,第三天10,现在下降到~4.这让我相信这个bug只会影响新用户或更新用户,最初我的用户应用升级到新版本时会有很多用户.我仍然认为这是谷歌的一个错误,并希望他们能解决,但至少它不像我最初想的那么普遍.

yuv*_*val 1

正如我的更新中所述,几天后,我看到的这些错误越来越少,直到几周后的现在,我再也看不到它们了。所以我想答案是,这会间歇性地影响正在更新应用程序的用户,并最终自行消失。开发人员很可能不需要采取任何行动。