Android Maps v2在加载时崩溃

Android Maps v2在加载时崩溃,android,google-maps-android-api-2,Android,Google Maps Android Api 2,我有一个基于谷歌地图Api V2的应用程序。该应用程序在启动时显示地图,到目前为止,谷歌地图是唯一可用的地图提供商。我唯一的例外是: java.lang.NullPointerException at com.google.maps.api.android.lib6.gmm6.m.c.n.a(Unknown Source) at com.google.maps.api.android.lib6.gmm6.m.c.n.(Unknown Source) at com.google.maps.api.

我有一个基于谷歌地图Api V2的应用程序。该应用程序在启动时显示地图,到目前为止,谷歌地图是唯一可用的地图提供商。我唯一的例外是:

java.lang.NullPointerException
at com.google.maps.api.android.lib6.gmm6.m.c.n.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.c.n.(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.c.e.(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.l.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.cv.f(Unknown Source)
我不确定这是否与谷歌地图有关,但这不是谷歌地图(包含在谷歌游戏服务中)出现的第一个问题,对此我别无选择,只能等待修复。因此,我决定也添加开放街道地图作为替代供应商

添加一个新的地图提供者很容易。为这次撞车找到解决办法并不是那么容易。我花了大约3周的时间试图找到解决这个问题的方法。我觉得我已经尝试了所有的方法,所以我来这里看看是否有其他的解决方法

到目前为止,我试图用一个
UncaughtExceptionHandler
捕获异常,它似乎工作过一次(大约两周前),但我无法再次复制相同的代码

在我的设备上强制Google地图崩溃(通过更改清单中的api密钥标签)实际上是被
UncaughtExceptionHandler
捕获的,但不幸的是,它没有解决我的用户设备上的真正问题

我尝试同时使用
getMap()
getmapsync()
,结果相同

我尝试在与Google Maps有连接的任何地方添加
try catch
块,比如片段的起始位置和
getmapsync()
,但没有成功

我尝试在另一个主要活动中启动谷歌地图(与的示例相同),但没有与我的其他应用程序活动建立任何联系,但我没有成功捕获导致应用程序崩溃的异常

我强迫应用程序从开放的街道地图开始,它工作得很好

我的计划是抓住谷歌地图崩溃,用开放的街道地图重新启动应用程序,但我真的找不到一个好的解决方案。我的意思是,我成功地做到了这一点,但它只能在我的设备上工作(Xperia Z1 Compact和Android 5.1.1),我无法重现我的用户所遇到的问题

到目前为止,我有两个用户通过电子邮件抱怨这个问题。他们都有内核版本为3.4.5的安卓4.2.1和谷歌游戏服务版本8.4.89(2428711-036)

我在Google开发者控制台中也有这个异常,其他没有特定设备模式的用户报告了这个异常(我不知道这是否与我现在试图绕过的NPE有关):

java.lang.RuntimeException:无法恢复活动{android.package.MainActivity}:java.lang.NullPointerException
在android.app.ActivityThread.performResumeActivity(ActivityThread.java:3050)上
位于android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3081)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2447)上
在android.app.ActivityThread.access$800(ActivityThread.java:156)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:211)
位于android.app.ActivityThread.main(ActivityThread.java:5373)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
原因:java.lang.NullPointerException
在com.google.a.a.ae.a(未知来源)
在com.google.maps.api.android.lib6.gmm6.c.k.(未知来源)
在com.google.maps.api.android.lib6.gmm6.c.k.a(未知来源)
位于com.google.maps.api.android.lib6.gmm6.c.y.a(未知来源)
位于com.google.maps.api.android.lib6.e.bd.a(未知来源)
位于com.google.maps.api.android.lib6.e.ev.a(未知来源)
位于com.google.maps.api.android.lib6.e.z.a(未知来源)
位于com.google.maps.api.android.lib6.e.y.a(未知来源)
位于com.google.android.gms.maps.internal.u.onTransact(源文件:107)
位于android.os.Binder.transact(Binder.java:380)
位于com.google.android.gms.maps.a.l.a(未知来源)
在com.google.android.gms.maps.o.a(未知来源)
在com.google.android.gms.b.f.a(未知来源)
在com.google.android.gms.b.b.a(未知来源)
在com.google.android.gms.b.b.a(未知来源)
位于com.google.android.gms.maps.n.onCreateView(未知来源)
位于android.support.v4.app.Fragment.performCreateView(源文件:1789)
位于android.support.v4.app.FragmentManagerImpl.moveToState(源文件:955)
位于android.support.v4.app.FragmentManagerImpl.moveToState(源文件:1138)
位于android.support.v4.app.FragmentManagerImpl.moveToState(源文件:1120)
位于android.support.v4.app.FragmentManagerImpl.dispatchResume(源文件:1939)
位于android.support.v4.app.FragmentActivity.onResumeFragments(源文件:447)
位于android.support.v4.app.FragmentActivity.onPostResume(源文件:436)
位于android.support.v7.app.ad.onPostResume(源文件:138)
在android.app.Activity.performResume(Activity.java:6089)
在android.app.ActivityThread.performResumeActivity(ActivityThread.java:3039)上
... 还有11个

你认为我可以做些什么来抓住谷歌地图崩溃的机会,或者如果谷歌地图在启动时崩溃,我应该做些什么来加载开放式街道地图?

在oncreate中调用它,而不是onresume。请在获得的代码行中编写代码crash@ARMV当前位置我没有在简历上打任何电话。我正在onCreate中设置映射片段。我没有一行代码可以显示崩溃,因为我没有看到崩溃。@DanielNugent:不幸的是,我无法重现这个问题,日志显示的是模糊代码,因为Google Maps代码已模糊,所以我无法添加任何其他调试堆栈跟踪。
java.lang.RuntimeException: Unable to resume activity {android.package.MainActivity}: java.lang.NullPointerException
  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3050)
  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3081)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2447)
  at android.app.ActivityThread.access$800(ActivityThread.java:156)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:211)
  at android.app.ActivityThread.main(ActivityThread.java:5373)
  at java.lang.reflect.Method.invoke(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
Caused by: java.lang.NullPointerException
  at com.google.a.a.ae.a(Unknown Source)
  at com.google.maps.api.android.lib6.gmm6.c.k.<init>(Unknown Source)
  at com.google.maps.api.android.lib6.gmm6.c.k.a(Unknown Source)
  at com.google.maps.api.android.lib6.gmm6.c.y.a(Unknown Source)
  at com.google.maps.api.android.lib6.e.bd.a(Unknown Source)
  at com.google.maps.api.android.lib6.e.ev.a(Unknown Source)
  at com.google.maps.api.android.lib6.e.z.a(Unknown Source)
  at com.google.maps.api.android.lib6.e.y.a(Unknown Source)
  at com.google.android.gms.maps.internal.u.onTransact(SourceFile:107)
  at android.os.Binder.transact(Binder.java:380)
  at com.google.android.gms.maps.a.l.a(Unknown Source)
  at com.google.android.gms.maps.o.a(Unknown Source)
  at com.google.android.gms.b.f.a(Unknown Source)
  at com.google.android.gms.b.b.a(Unknown Source)
  at com.google.android.gms.b.b.a(Unknown Source)
  at com.google.android.gms.maps.n.onCreateView(Unknown Source)
  at android.support.v4.app.Fragment.performCreateView(SourceFile:1789)
  at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:955)
  at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1138)
  at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1120)
  at android.support.v4.app.FragmentManagerImpl.dispatchResume(SourceFile:1939)
  at android.support.v4.app.FragmentActivity.onResumeFragments(SourceFile:447)
  at android.support.v4.app.FragmentActivity.onPostResume(SourceFile:436)
  at android.support.v7.app.ad.onPostResume(SourceFile:138)
  at android.app.Activity.performResume(Activity.java:6089)
  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3039)
... 11 more