4

所以我一直看到一个奇怪的例外来自我很确定是谷歌地图的绘图代码。

我有一个片段,我在其中以编程方式添加一个 SupportMapFragment,然后我在其中操作 GoogleMap 实例。

这是堆栈跟踪:

0   java.lang.NullPointerException

1   at java.nio.ReadWriteDirectByteBuffer.put(ReadWriteDirectByteBuffer.java:137)

2   at java.nio.ShortToByteBufferAdapter.put(ShortToByteBufferAdapter.java:163)

3   at maps.z.d.d(Unknown Source)

4   at maps.z.d.a(Unknown Source)

5   at maps.aq.a.a(Unknown Source)

6   at maps.aq.ao.b(Unknown Source)

7   at maps.aq.ao.a(Unknown Source)

8   at maps.v.g.a(Unknown Source)

9   at maps.v.g.b(Unknown Source)

10  at maps.p.p.l(Unknown Source)

11  at maps.p.p.run(Unknown Source)

我无法可靠地复制它(尽管它经常发生),我查看了 ReadWriteDirectByteBuffer 和 ShortToByteBufferAdapter 但没有任何东西出现在我身上。

有任何想法吗?

4

2 回答 2

4

我有同样的随机问题。

您可能想尝试在 gmaps-api-issues 上解决问题

于 2013-07-22T21:01:38.013 回答
2

我遇到了这个问题,发现它在我的应用程序中通过在 MapView 所在片段的 onPause() 方法中实现 mapView 的 .onPause() 方法得到解决。

我认为您需要在 Fragment 中实现所有这些方法,并确保在您的 MapView 上调用它们。

MapView mapView; 

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

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

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

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

我看到原始海报谈到在片段中使用片段。我在 Fragment 中使用 MapView 代替。请参阅这篇文章了解如何执行此操作:Android - android.view.InflateException: Binary XML file line #8: Error inflating class fragment

于 2014-09-28T20:25:37.517 回答