Установка BitmapDrawable tileMode заставляет приложение перезапускаться

Хотя на большинстве устройств мое приложение работает нормально, на некоторых устройствах (пока LG G3, Samsung Galaxy S6) произошла странная ошибка, которую я не могу развернуть:

настройка tileMode (либо через XML, либо программно) к чему угодно (clamp/repeat/mirror) на BitmapDrawable, это фон макета, делает этот фон полностью черным, и приложение перезапускается через ~20 секунд - без каких-либо признаков того, что что-то идет не так (никаких сообщений в LogCat, ни один из этих обратных вызовов моей деятельности не вызывается: onPause(), onStop(), onDestroy()).

Как было некоторое несоответствие между этими зависаниями / сбоями в зависимости от Bitmap будучи использованным, я начал играть с .png изображения, и выяснил, что я могу избавиться от (большинства) этих сбоев, если я уменьшу размер этих изображений (<200x200).

поскольку

  • есть еще некоторые сбои и

  • Я не могу быть уверен в том, что размер порога для всех устройств

Я все еще ищу общее решение, может быть, некоторые из вас могут мне помочь.

1 ответ

Решение

Хотя эта тема была не совсем о той же проблеме, что и я, она мне случайно помогла. Настройка layerType рассматриваемого макета в software лайк

  • android:layerType="software", или же

  • view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

сделал черный фон и перезапуски приложения исчезают.

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

Спасибо за помощь pskink в любом случае!

Другие вопросы по тегам