在某些6.0设备上解码png图像时,Android本机崩溃

时间:2018-04-30 03:53:53

标签: android libpng skia

仅在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

1 个答案:

答案 0 :(得分:0)

我有一个Legacy项目,在第一个版本发布后,一些用户开始崩溃。我花了三天时间进行搜索。当我拿到问题设备时,很快就发现了问题。事实证明,我看错地方了,因为该项目有很多本地库。

就我而言,问题出在资源中的PNG文件错误。此PNG用于XML标记中的阴影。

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

图片为16位彩色。我将PNG转换为32位颜色并解决了问题