Android应用使用ViewPager在方向更改时崩溃

时间:2014-03-21 19:35:51

标签: android google-maps

我目前正在开发一个使用ViewPager的应用程序,并且在方向更改时它会崩溃。我已经检查了几个关于此的不同帖子,但没有一个我得到同样的错误。

java.lang.NullPointerException
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)

我已经添加了其他帖子建议的修补程序,即

@Override 
public void onSaveInstanceState(Bundle outState) 
{
    //first saving my state, so the bundle wont be empty.
    outState.putString("WORKAROUND_FOR_BUG_19917_KEY",  "WORKAROUND_FOR_BUG_19917_VALUE");
    super.onSaveInstanceState(outState);
}

但这没有用。

setRetainInstance(true);

不在我的代码中,按照建议注释掉了(我也尝试将其设置为false)。

我也指定了

android:screenOrientation="portrait"

它可以在90%的时间内解决问题。但是,如果设备关闭/进入睡眠状态且我的应用程序当时是打开的应用程序,然后登录屏幕变为横向,则应用程序将在后台再次启动并在用户登录时崩溃。 / p> 编辑:此外,问题似乎只会发生,因为我有两个不同的片段,里面有谷歌地图片段。

任何帮助都会受到赞赏,我觉得我已经尝试了一切。

1 个答案:

答案 0 :(得分:0)

一旦我遇到同样的问题。您在XML中添加了GoogleMap片段。但是,documentation说:

  

注意:当布局包含时,您无法将布局扩展为片段   一个<fragment>。只有在添加到a时才支持嵌套片段   动态分段。

在您的情况下,您希望将带有GoogleMaps <fragment>的布局扩展到ViewPager片段中,您不能这样做。

您应该从Java代码向ViewPager添加GoogleMap片段,例如使用ViewGroup(或其子类)addView(View v)方法。