«Что здесь не так, не ожидал, что пакет будет возобновить» ошибка в Android Logcat

StackOverflow https://stackoverflow.com/questions/2174865

Вопрос

У меня есть приложение для 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 экземпляры и как это влияет на этот жизненный цикл.

Вот пост блогов Объясняя некоторые из этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top