В настоящее время я разрабатываю приложение, использующее ViewPager, и при изменении ориентации он сбой. Я рассмотрел несколько разных сообщений об этом, но ни у кого из них нет той же ошибки, которую я получаю.Сбой приложения Android при изменении ориентации с помощью 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% времени. Однако, если устройство закрыто/поставлено на спящий режим, и мое приложение было открытым приложением в то время, а затем экран входа в систему стал ландшафтным, приложение снова запустится в фоновом режиме и произойдет сбой к моменту входа пользователя.
EDIT: Кроме того, проблема возникает только потому, что у меня есть два разных фрагментации с фрагментом карты Google.
Любая помощь была бы оценена, я чувствую, что я пробовал все.
Какая версия Android? Требуется ли тэг 'google-maps'? –
Я нацелен на версии sdk с 16 по 18, и это необходимо, потому что ошибка возникает только в том случае, если у меня есть два разных фрагмента карты. С одной проблемой не возникает. – TomW
Чтобы уточнить, мой ViewPager имеет три фрагмента, первый имеет фрагмент карты, второй - нет, а третий имеет другой фрагмент карты. Если я вырву второй фрагмент карты, авария не произойдет, я недавно понял это. – TomW