在mapFragment.getMapAsync空指针异常(本)在初始化谷歌地图 [英] Null pointer exception at mapFragment.getMapAsync(this) while initializing google map
本文介绍了在mapFragment.getMapAsync空指针异常(本)在初始化谷歌地图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我使用谷歌的v6.5.87播放服务,我得到一个空指针异常,当我打电话 getMapAsync()
。我使用的是 SupportMapFragment
在我的片段
的XML布局。
我的code:
SupportMapFragment mapFragment =(SupportMapFragment)getActivity()
。.getSupportFragmentManager()findFragmentById(R.id.mapFragment);mapFragment.getMapAsync(本);
注:打电话时没有任何问题的GetMap()
在旧的谷歌播放服务的版本,但的GetMap()
现在去precated(文档)。
下面是对于NPE堆栈跟踪:
显示java.lang.NullPointerException
在com.decos.fixi.fragments.FragmentLocationMap.initializeMap(FragmentLocationMap.java:132)
在com.decos.fixi.fragments.FragmentLocationMap.onCreateView(FragmentLocationMap.java:95)
在android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
在android.support.v4.app.FragmentManagerImpl $ 1.run(FragmentManager.java:454)
在android.os.Handler.handleCallback(Handler.java:615)
在android.os.Handler.dispatchMessage(Handler.java:92)
在android.os.Looper.loop(Looper.java:137)
在android.app.ActivityThread.main(ActivityThread.java:4921)
在java.lang.reflect.Method.invokeNative(本机方法)
在java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1027)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
在dalvik.system.NativeStart.main(本机方法)
解决方案
最后,我得到了答案!
SupportMapFragment mapFragment =(SupportMapFragment)this.getChildFragmentManager()
.findFragmentById(R.id.mapFragment);
而不是
SupportMapFragment mapFragment =(SupportMapFragment)this.getSupportFragmentManager()
.findFragmentById(R.id.mapFragment);
getChildFragmentManager()做的伎俩。
When I use v6.5.87 of Google Play Services, I get a null pointer exception when I call getMapAsync()
. I'm using a SupportMapFragment
in my Fragment
's xml layout.
My code:
SupportMapFragment mapFragment = (SupportMapFragment) getActivity()
.getSupportFragmentManager().findFragmentById(R.id.mapFragment);
mapFragment.getMapAsync(this);
Note: There's no problem when calling getMap()
on older Google Play Services versions, but getMap()
is now deprecated (docs).
Here's the stack trace for the NPE:
java.lang.NullPointerException
at com.decos.fixi.fragments.FragmentLocationMap.initializeMap(FragmentLocationMap.java:132)
at com.decos.fixi.fragments.FragmentLocationMap.onCreateView(FragmentLocationMap.java:95)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:454)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
at dalvik.system.NativeStart.main(Native Method)
解决方案
Finally I got the answer!
SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager()
.findFragmentById(R.id.mapFragment);
instead of
SupportMapFragment mapFragment = (SupportMapFragment) this.getSupportFragmentManager()
.findFragmentById(R.id.mapFragment);
getChildFragmentManager() did the trick.
这篇关于在mapFragment.getMapAsync空指针异常(本)在初始化谷歌地图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文