Родной сбой Android при декодировании изображений png на некоторых устройствах 6.0

Происходит только в устройствах 6.0, трассировка стека выглядит следующим образом. Я уменьшаю изображения, устанавливая BitmapFactory.Options.inSampleSize, поэтому мой код масштабирует файлы png. Что это может быть проблемой?

backtrace:
    #00  pc 000000000002c7d8  /system/lib64/libpng.so (sub_filter_2bpp_neon64+136)
    #01  pc 0000000000012da4  /system/lib64/libpng.so (png_read_row+440)
    #02  pc 0000000000013048  /system/lib64/libpng.so (png_read_rows+96)
    #03  pc 000000000028c024  /system/lib64/libskia.so (_ZN17SkPNGImageDecoder8onDecodeEP8SkStreamP8SkBitmapN14SkImageDecoder4ModeE+1692)
    #04  pc 000000000027f70c  /system/lib64/libskia.so (_ZN14SkImageDecoder6decodeEP8SkStreamP8SkBitmap11SkColorTypeNS_4ModeE+152)
    #05  pc 00000000000f6140  /system/lib64/libandroid_runtime.so
    #06  pc 00000000000f6a78  /system/lib64/libandroid_runtime.so
    #07  pc 0000000003497668  /system/framework/arm64/boot.oat

person tactoth    schedule 30.04.2018    source источник
comment
возможно, важно знать, на каких устройствах происходит сбой. Пожалуйста, добавьте несколько примеров.   -  person Vladyslav Matviienko    schedule 30.04.2018
comment
Также добавьте свой код. Вы не можете быть уверены, что делаете все правильно со своей стороны.   -  person Vladyslav Matviienko    schedule 30.04.2018
comment
У меня есть такой же. Вы нашли причину?   -  person krawa    schedule 09.10.2019


Ответы (1)


Я получил проект Legacy, и после первого релиза у некоторых пользователей начались сбои. Я потратил три дня на поиски. Проблема была обнаружена очень быстро, когда я получил проблемное устройство. Как оказалось, я смотрел не туда, потому что в проекте было много нативных библиотек.

В моем случае проблема была в неправильном файле PNG в ресурсах. Этот PNG использовался для тени в XML-разметке.

<View android:layout_width="fill_parent" 
      android:layout_height="8dp"
      android:background="@drawable/df_tab_bar_shadow"/>

Картинка была 16-битной цветовой гаммы. Я преобразовал PNG в 32-битные цвета, и проблема решена.

person krawa    schedule 11.10.2019