我正在创建一个应用程序,它可以获取2个或3个地图并在viewpager中显示它们。 有时它会崩溃并显示以下错误。
FATAL EXCEPTION: GLThread 2477
java.lang.NullPointerException
at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:344)
at java.nio.ByteBufferAsShortBuffer.put(ByteBufferAsShortBuffer.java:160)
at com.google.maps.api.android.lib6.gmm6.o.c.a.d.d(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.c.a.d.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.a.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.c.b(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.c.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.l.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.l.b(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.cw.k(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.cw.run(Unknown Source)
在logcat中没有关于此错误原因的信息。我无法追踪错误。 可能导致此错误的原因是什么?如何解决此问题。
答案 0 :(得分:1)
当我在自定义片段(不是MapView
)中使用MapFragment
时,我遇到了相同的堆栈跟踪问题,但是我没有使用ViewPager。
事实证明,我忘记呼叫MapView.onPause()
,同时调用所有其他MapView
生命周期回调。
添加此块可以解决我的问题:
@Override
public void onPause() {
mapView.onPause();
super.onPause();
}