子类化SupportMapFragment会导致NullPointerException

时间:2012-12-05 14:08:21

标签: android android-maps google-play-services

我目前正在使用google-play-services库r3实现我自己的SupportMapFragment子类。

当我尝试将片段添加到NullPointerExceptionActivity时,我在库的一个内部类中获得了ViewPager。 这是相关的堆栈跟踪:

java.lang.NullPointerException
    at maps.y.p.onResume(Unknown Source)
    at com.google.android.gms.maps.internal.IMapFragmentDelegate$Stub.onTransact(IMapFragmentDelegate.java:115)
    at android.os.Binder.transact(Binder.java:310)
    at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onResume(Unknown Source)
    at com.google.android.gms.maps.SupportMapFragment$a.onResume(Unknown Source)
    at com.google.android.gms.internal.c$1.a(Unknown Source)
    at com.google.android.gms.internal.c.a(Unknown Source)
    at com.google.android.gms.internal.c.onResume(Unknown Source)
    at com.google.android.gms.maps.SupportMapFragment.onResume(Unknown Source)
    at android.support.v4.app.Fragment.performResume(Fragment.java:1503)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
    at android.support.v4.app.FragmentManagerImpl.performPendingDeferredStart(FragmentManager.java:807)
    at android.support.v4.app.FragmentManagerImpl.startPendingDeferredFragments(FragmentManager.java:1112)
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1461)
    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)

此时内部地图显然为空。

是否有人遇到此问题并有解决方案?

2 个答案:

答案 0 :(得分:33)

在SupportMapFragment的子类中,是否覆盖了onCreateView(...)?

如果你这样做了,你还需要在你自己的onCreateView(...)中调用super.onCreateView(...)让超类创建它的视图。该片段与底层视图紧密相关。

答案 1 :(得分:1)

尝试getChildFragmentManger()同时确保填写onActivityCreated()

之内或之后

Docs似乎也暗示,如果底层地图系统没有运行,它将无效。

同时检查你是否正在使用ACL的v11(虽然我怀疑这是问题)。