Android 动态创建地图视图(API v2)

Android 动态创建地图视图(API v2),android,dynamic,android-mapview,creation,Android,Dynamic,Android Mapview,Creation,我正在尝试动态创建一个MapView,并将其插入到一个正在运行的片段中 我成功地将MapView插入到它的父布局(位于片段中),但是地图没有显示,并且我在google maps库中得到了内部异常 我怀疑这与片段生命周期方法的转发有关。我已经转发了它们,但我怀疑只调用了onResume,因为当我插入mapView时,片段已经处于活动状态 在提供的堆栈跟踪上,您可以看到内部mapview错误,它来自onResume 我应该手动调用onCreate和onStart吗?还是我做错了什么 提前谢谢

我正在尝试动态创建一个MapView,并将其插入到一个正在运行的片段中

我成功地将MapView插入到它的父布局(位于片段中),但是地图没有显示,并且我在google maps库中得到了内部异常

我怀疑这与片段生命周期方法的转发有关。我已经转发了它们,但我怀疑只调用了onResume,因为当我插入mapView时,片段已经处于活动状态

在提供的堆栈跟踪上,您可以看到内部mapview错误,它来自onResume

我应该手动调用onCreate和onStart吗?还是我做错了什么

提前谢谢

    06-11 21:11:29.799: W/System.err(7804): java.lang.NullPointerException
    06-11 21:11:29.799: W/System.err(7804):     at maps.aj.bi.b(Unknown Source)
    06-11 21:11:29.799: W/System.err(7804):     at bcz.onTransact(SourceFile:73)
    06-11 21:11:29.799: W/System.err(7804):     at android.os.Binder.transact(Binder.java:297)
    06-11 21:11:29.799: W/System.err(7804):     at com.google.android.gms.maps.internal.IMapViewDelegate$a$a.onResume(Unknown Source)
    06-11 21:11:29.799: W/System.err(7804):     at com.google.android.gms.maps.MapView$a.onResume(Unknown Source)
    06-11 21:11:29.799: W/System.err(7804):     at com.google.android.gms.internal.bb$6.b(Unknown Source)
    06-11 21:11:29.799: W/System.err(7804):     at com.google.android.gms.internal.bb$1.a(Unknown Source)
    06-11 21:11:29.799: W/System.err(7804):     at com.google.android.gms.maps.MapView$b.aP(Unknown Source)
    06-11 21:11:29.799: W/System.err(7804):     at com.google.android.gms.maps.MapView$b.a(Unknown Source)
    06-11 21:11:29.799: W/System.err(7804):     at com.google.android.gms.internal.bb.a(Unknown Source)
    06-11 21:11:29.799: W/System.err(7804):     at com.google.android.gms.internal.bb.onResume(Unknown Source)
    06-11 21:11:29.799: W/System.err(7804):     at com.google.android.gms.maps.MapView.onResume(Unknown Source)
            ---------------------
    06-11 21:11:29.799: W/System.err(7804):     at com.regaliz.funq.story.FunqLayer_map.delegate_onResume(FunqLayer_map.java:66)
    06-11 21:11:29.799: W/System.err(7804):     at com.regaliz.funq.story.FunqSlide.onResume(FunqSlide.java:622)
    06-11 21:11:29.799: W/System.err(7804):     at android.support.v4.app.Fragment.performResume(Fragment.java:1503) 
            -------------------
    06-11 21:11:29.799: W/System.err(7804):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
    06-11 21:11:29.799: W/System.err(7804):     at android.support.v4.app.FragmentManagerImpl.performPendingDeferredStart(FragmentManager.java:807)
    06-11 21:11:29.799: W/System.err(7804):     at android.support.v4.app.FragmentManagerImpl.startPendingDeferredFragments(FragmentManager.java:1112)
    06-11 21:11:29.799: W/System.err(7804):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1461)
    06-11 21:11:29.799: W/System.err(7804):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)
    06-11 21:11:29.799: W/System.err(7804):     at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163)
    06-11 21:11:29.799: W/System.err(7804):     at android.support.v4.view.ViewPager.populate(ViewPager.java:1064)
    06-11 21:11:29.799: W/System.err(7804):     at android.support.v4.view.ViewPager.populate(ViewPager.java:911)
    06-11 21:11:29.799: W/System.err(7804):     at android.support.v4.view.ViewPager$3.run(ViewPager.java:242)

我在另一个帖子上找到了灵感:

通过在片段的onCreateView中手动调用,我成功地在片段创建后动态实例化了mapview

MapsInitializer.initialize(context);
mapView.onCreate(bundle);

文档说您必须转发onCreate,但他们通常谈论活动和片段,片段也有onCreate(bundle)方法,但以我的经验(Fragment),我必须转发onCreateView,而不是onCreate,才能让所有内容正常工作。

对我有效的解决方案是在片段的
onActivityCreated(savedInstanceState)
方法中调用
mapView.onCreate(savedInstanceState)

这一定是谷歌文档中的错误。但是,也要记住根据谷歌文档给所有其他成员打电话


希望对您有所帮助

您缺少堆栈跟踪的一部分,特别是异常本身。