安卓谷歌地图空指针异常
Posted
技术标签:
【中文标题】安卓谷歌地图空指针异常【英文标题】:android google maps nullpointerexception 【发布时间】:2013-07-21 17:50:26 【问题描述】:所以我一直看到一个奇怪的异常来自我很确定是谷歌地图的绘图代码。
我有一个 Fragment,我在其中以编程方式添加 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,但没有任何结果。
有什么想法吗?
【问题讨论】:
我为此提供了一种解决方法。这不是一个修复程序,但至少可以避免应用程序一直崩溃。在这里查看我自己的答案:***.com/questions/19624437/… 【参考方案1】:我也遇到过同样的随机问题。
您可能想尝试恢复issue on gmaps-api-issues。
【讨论】:
疯了,我在网上搜索堆栈跟踪时看到了你的回复。我去添加了一个回复,希望那里有一些见解。 仍然得到这个。已加注星标并对此问题发表评论。【参考方案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
【讨论】:
不确定我在哪里找到代码,但我只有 onResume onDestroy 和 onLowMemory 并且这个问题一直在发生。添加 onPause 后问题解决了。泰! 但我有 mapfragment 而不是 mapview 那么如何??以上是关于安卓谷歌地图空指针异常的主要内容,如果未能解决你的问题,请参考以下文章