android – Google maps crash: java.lang.NullPointerException: Attempt to read from null array-ThrowExceptions

Exception or error:

I see a lot of following crashes in 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)

All of them happen on Android 5, mostly on Lenovo devices.

The map is loaded in SupportMapFragment.

Dependencies (current latest):

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

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

What could be the cause of this crash?

How to solve:

Ok, so I opened a ticket on google issue tracker and a lot of people confirmed they were facing the same crash.

Seems like an internal bug ticket was created and the work is being done to resolve the issue on maps side.
Also a temporary workaround was suggested in comments:

The workaround, that worked for me is to set maxZoomPreference on the
map equal to 16 and to use 16 as zoom level in the calling of the
newLatLngZoom method. It seems that the issue occurs only when you try
to zoom more than 16 levels.

We implemented the suggested approach in our app and it indeed prevents the crash.

Upd:

According to Google the crash was fixed for future SDK versions.

Upon further checking, our Engineering Team was able to reproduce the
problem and already fixed it in the latest SDK version.

Leave a Reply

Your email address will not be published. Required fields are marked *