谷歌地图崩溃:java.lang.NullPointerException:尝试从空数组读取

Ale*_*hin 23 android google-maps

我看到很多以下崩溃Crashlytics

Fatal Exception: java.lang.NullPointerException: Attempt to read from null array
   at java.util.ArrayList.get(ArrayList.java:310)
   at com.google.maps.api.android.lib6.gmm6.vector.gl.drawable.g.a(g.java:56)
   at com.google.maps.api.android.lib6.gmm6.vector.gl.drawable.ao.a(ao.java:91)
   at com.google.maps.api.android.lib6.gmm6.store.fetch.i.a(i.java:99)
   at com.google.maps.api.android.lib6.gmm6.store.fetch.f.a(f.java:3)
   at com.google.maps.api.android.lib6.gmm6.store.j.a(j.java:19)
   at com.google.maps.api.android.lib6.gmm6.store.k.a(k.java:96)
   at com.google.maps.api.android.lib6.gmm6.store.f.handleMessage(f.java:71)
   at android.os.Handler.dispatchMessage(Handler.java:111)
   at android.os.Looper.loop(Looper.java:194)
   at com.google.maps.api.android.lib6.gmm6.store.k.run(k.java:126)
   at com.google.maps.api.android.lib6.gmm6.store.ab.run(ab.java:12)
Run Code Online (Sandbox Code Playgroud)

所有这些都发生在 Android 5 上,主要是在联想设备上。

地图加载在SupportMapFragment.

依赖项(当前最新):

com.google.android.gms:play-services-maps:17.0.0

com.google.maps.android:android-maps-utils:0.6.2

这次崩溃的原因可能是什么?

Yar*_*lav 9

好的,所以我在谷歌问题跟踪器上开了一张票,很多人确认他们面临同样的崩溃。

似乎创建了内部错误票证,并且正在努力解决地图方面的问题。在评论中还建议了一个临时解决方法:

对我有用的解决方法是将地图上的 maxZoomPreference 设置为 16,并在调用 newLatLngZoom 方法时使用 16 作为缩放级别。似乎只有当您尝试缩放超过 16 个级别时才会出现此问题。

我们在我们的应用程序中实施了建议的方法,它确实防止了崩溃。

更新:

根据谷歌的说法,崩溃已在未来的 SDK 版本中得到修复。

经过进一步检查,我们的工程团队能够重现该问题,并且已经在最新的 SDK 版本中修复了该问题。


小智 5

我在 Lenovo TB3-710I (android 5.1) 上遇到了这个问题。解决方法是禁用 3D 模型建筑。

googleMap.isBuildingsEnabled = false
Run Code Online (Sandbox Code Playgroud)