DirectByteBufferException鲸鱼在片段中获取不同的地图

时间:2014-12-02 11:56:50

标签: android android-fragments maps

我正在创建一个应用程序,它可以获取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中没有关于此错误原因的信息。我无法追踪错误。 可能导致此错误的原因是什么?如何解决此问题。

1 个答案:

答案 0 :(得分:1)

当我在自定义片段(不是MapView)中使用MapFragment时,我遇到了相同的堆栈跟踪问题,但是我没有使用ViewPager。 事实证明,我忘记呼叫MapView.onPause(),同时调用所有其他MapView生命周期回调。 添加此块可以解决我的问题:

@Override
public void onPause() {
    mapView.onPause();
    super.onPause();
}