Y1V0 Y13L相册的图片无法打开,一 打开又闪退

第一次写博客纪念一下

Android开发者茬选择图片时有时会遇到 “相册停止运行”等闪退的问题,我来说一下我的解决方案:

(1)先判断所用的sdk是否大于19;

}

其他答主把 bug 最初产生的原因说的佷完整了至于Android M及以下的系统中崩溃的原因,考虑到是 SIGBUS 可能是非对齐的内存访问,于是试着改了一下:

应用之后无法复现此bug了:


不知道其他格式的转换有没有问题反正关于这类图的问题无法复现,就这样好了[doge]

新人第一答求轻拍啊~

更新一发自制这类图的尝试:


这是EXIF规范的一点微小的解释(人家真的是这么说的)

(偷个懒)据说是曝光时间的锅?那么来改了试试:
  1. 曝光时间的 Tag 是0x829a这个文件的EXIF信息指示字節序是 Motorola 风格(大端),于是这个 Tag 在文件中的表现就是0x829a
  • 本来的类型是0x5(比值)改成0xc(双精度浮点)
  • 这是修改后的图,大家可以试试看有没囿问题……(我这里知乎客户端点大图就挂了)

    注意:上面的过程中没有验算是否出现了对齐问题因为基础地址会在哪里并不能提前得知……所以这张图能复现bug也许是个巧合

    注意2:如果要实现在QQ里崩溃的效果,需要想办法避免二压这里大家就自己开脑洞吧~

    貌似并不是所有人点大图都会出问题,比如部分华为(基于 Android 6.0 的版本)和三星的设备不清楚是不是它们的固件里已经打了针对此问题的补丁。基于 AOSP 的苐三方固件几乎全军覆没……

    如果存了 bug 图导致相册打不开可以参照其他答案的方法来删除有问题的图片。比如 Root Explorer、终端模拟器、adb shell

    }

    该楼层疑似违规已被系统折叠 

    可能是软件问题也可能是图片数据(损坏)存储问题。


    }

    我要回帖

    更多关于 V0LⅤo 的文章

    更多推荐

    版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

    点击添加站长微信