Мой проект работал, пока я не обновил свой S6 Edge до Android 6.0.1.
Приложение вылетает с ошибкой OutOfMemory после второго запуска.
Приложение содержит 2000+ изображения в каталоге, и я использую таймер для увеличения счетчика и отображения их в imageView. Когда вызывается onFinish()/onPause()/onDestroy(), я уничтожаю/отменяю все объекты, такие как таймеры, счетчик и imageView, устанавливая их в null.
Вот как я выбираю/распечатываю изображение в imageView
int resID = getResources().getIdentifier("animation"+i , "drawable", getPackageName());
Drawable animationFrame = ContextCompat.getDrawable(this, resID);
animationView.setImageDrawable(animationFrame);
i++;
Он запускается при первом запуске (даже если я устанавливаю приложение с помощью сгенерированного APK). Когда я удаляю приложение из свернутых приложений, оно вылетает через 2-3 секунды. Я проверил выделенную память, и это нормально (до 12 МБ) при первом запуске, тогда как на втором выделенная память составляет 255 МБ.
Метод onDestroy() Это включает ВСЕ инициализированные мои переменные. Мои переменные инициализируются как частные или без переменной доступа.
@Override
protected void onDestroy() {
super.onDestroy();
pauseAnimation();
animationView.setImageDrawable(null);
animationView = null;
justAnimation = null;
buttonSign = null;
i = 0;
media.stop();
media = null;
deathRateEU = 0;
deathRateUK = 0;
labelNumber = null;
labelNumberUK = null;
buttonSign = null;
loadingEU = null;
loadingUK = null;
}
Media - это MediaPlayer, инициализированный как открытый, и он воспроизводит звук, когда counter (i) достигает точки
Я установил это на другом устройстве, которое работает под управлением Android 5.1.3 (не уверен, но это что-то 5.1).
Существует ли известная ошибка для проблем OutOfMemory, когда приложение свернуто на Android 6.0.1?
Я на 100% уверен, что я не внес никаких изменений до/после того, как мой телефон обновился до версии 6.0.1
Монитор памяти при первом запуске
Заметки:
- Если приложение уже установлено на устройстве, и я пытаюсь скомпилировать его с помощью Android Studio, происходит сбой
- Мне нужно удалить/перекомпилировать, чтобы приложение заработало с первого раза
- Я получаю ту же ошибку при попытке запустить свой проект на устройстве Genymotion Android 6.0, но не на виртуальном устройстве Android 5.1 genymotion