«Что здесь не так, не ожидал, что пакет будет возобновить» ошибка в Android Logcat
-
24-09-2019 - |
Вопрос
У меня есть приложение для Android, смоделированное после LunarLander
Пример под Google. Я отладку его на реальном устройстве (Motorola Droid
) с участием Android 2.0
. Отказ Когда ориентация меняется, программа вылетает на NullPointerException
. Отказ Logcat от незадолго до аварии:
02-01 00:24:27.956: DEBUG/nate(8358): Starting Game
02-01 00:24:36.878: DEBUG/dalvikvm(1086): GC freed 1788 objects / 92256 bytes in 1389ms
02-01 00:24:38.542: INFO/WindowManager(1021): Setting rotation to 1, animFlags=0
02-01 00:24:38.558: INFO/ActivityManager(1021): Config changed: { scale=1.0 imsi=310/4 loc=en_US touch=3 keys=2/1/2 nav=2/2 orien=2 layout=34}
02-01 00:24:38.620: WARN/UsageStats(1021): Something wrong here, didnt expect org.nifong.leeder to be resumed
02-01 00:24:38.886: DEBUG/nate(8358): New Surface dimensions: 854x442
02-01 00:24:38.886: DEBUG/nate(8358): flies was null
Первая строка, которая беспокоит меня, это "Something wrong here"
в 24:38.620
. Отказ Я понятия не имею, что это значит, но я думаю, что из-за меня не реагируют правильно на изменение экрана.
Далее я получаю отладочную сообщение о том, что я напечатал себя из-за моего собственного метода surfaceChanged()
о новых размерах поверхности.
Затем я распечатаю отладочную сообщение о том, были ли мухи null
. flies
это поле, которое в конечном итоге вызывает NullPointerException
. Отказ Это создано один раз, и никогда не писал снова для остальной части программы. Я знаю, что это не было нулевым до аварии, потому что он читал несколько раз.
У кого-нибудь есть подсказка, как моя частная переменная участника была нулевой только что этими подсказками?
Я бы включить код, но есть много, и я не знаю, что будет актуально.
Решение 2
Я исправил его, добавив эти две линии к тегу активности в моем файле манифеста
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="landscape"
Это говорит, что мое приложение будет обрабатывать клавиатуру и ориентацию изменения самостоятельно (ничего не делая) и предпочитают бегать в ландшафте все время.
Другие советы
Изменения ориентации в Android влияют на состояние. В основном ваша деятельность разрушена и воссоздана. Поэтому вы должны знать о том, что Android Lifecycle События будут вызваны и как сохранить состояние.
Вы также должны быть осторожны static
экземпляры и как это влияет на этот жизненный цикл.
Вот пост блогов Объясняя некоторые из этого.