Intereting Posts
Какова будет конфигурация ресурсов Nexus 9 – 2014? Использование атрибута размера HTML в TextView Идентификатор ресурса не найден для атрибута paddingEnd в пакете 'android' Genymotion: как загружать apk каждый раз? Android: рейтинг не отображается, становится видимым только при касании Как добавить контакт с именем и фамилией с помощью намерения Сделать пользовательский заголовок по умолчанию на Android Game-Loop в Firemonkey для Android Удаление вызова из журнала вызовов после завершения вызова Прокрутка панели инструментов в строке состояния Как я могу создать приложение Java с помощью API Monkeyrunner? Показывать клавиатуру программно на Android с кнопкой OK / DONE Питание для устройств, на которых работает Jelly bean, а также версии позже Jelly bean при использовании данных приложений Ошибка при переходе с Java на Kotlin. Ошибка – org.gradle.api.tasks.TaskExecutionException: выполнение не выполнено для задачи ': app: compileDebugKotlin' Как сделать свечение текста?

Ошибка OutOfMemory только на устройствах Android 6.0.1

Кажется, у меня есть эта странная проблема с моим проектом.
Все было хорошо, но, так как я обновил свой 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; } 

Медиа – это MediaPlayer, инициализированный как открытый, и он воспроизводит звук, когда счетчик (i) достигает точки

Я попытался установить это на другое устройство под управлением Android 5.1.3 (не уверен, но это что-то вроде 5.1), и все работает нормально.

Вы, ребята, знаете, есть ли известная ошибка для OutOfMemory, когда приложение минимизируется на Android 6.0.1?

Я на 100% уверен, что не делал никаких изменений до / после моего телефона, обновленного до версии 6.0.1

Пожалуйста, дайте мне знать, если вы хотите, чтобы я опубликовал скриншоты, связанные с журналами / мониторами памяти и т. Д.

Монитор памяти на 1-м запуске Введите описание изображения здесь

Второй запуск

Введите описание изображения здесь

Заметки:

  1. Если приложение уже установлено на устройстве, и я пытаюсь его скомпилировать с помощью Android Studio, происходит сбой
  2. Мне нужно удалить / перекомпилировать, чтобы заставить приложение работать в первый раз
  3. Я получаю ту же ошибку, когда пытаюсь запустить свой проект на устройстве Genymotion Android 6.0, но не на виртуальном устройстве genymotion Android 5.1

Solutions Collecting From Web of "Ошибка OutOfMemory только на устройствах Android 6.0.1"