我目前正在开发一个使用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> 编辑:此外,问题似乎只会发生,因为我有两个不同的片段,里面有谷歌地图片段。
任何帮助都会受到赞赏,我觉得我已经尝试了一切。
答案 0 :(得分:0)
一旦我遇到同样的问题。您在XML中添加了GoogleMap片段。但是,documentation说:
注意:当布局包含时,您无法将布局扩展为片段 一个
<fragment>
。只有在添加到a时才支持嵌套片段 动态分段。
在您的情况下,您希望将带有GoogleMaps <fragment>
的布局扩展到ViewPager片段中,您不能这样做。
您应该从Java代码向ViewPager添加GoogleMap片段,例如使用ViewGroup(或其子类)addView(View v)
方法。