加载超大图直接crash没有java的明显报错日志

既然crash了,java层没有明显致命报错,那么一定是在native层。 native报错相当不明显。

看了下,这个大图有 > 10000 x 20000的像素,占用空间 > 17M.

写了demo,发现BitmapFactory.decodeFile(filePath,tmpOptions)正常,而在项目里BitmapFactory.decodeFile(filePath,options); 此处开始报错的.当然,这么大的图,在手机相册,微博等其他应用上也是crash,微信相册没有crash,但是给了个黑屏。

原来是老项目 targetSdkVersion才24,现在新项目普遍都用新的29了,所以小demo里正常,手机相册,微博等这些大型的 "老项目",即使升级,也不敢轻易升级targetSdkVersion版本。

根本原因是,API28以后,bitmap对象解码,放在native层,由C申请/释放内存,对大图的兼容性,比java不知高到哪里去了。别处看过那个代码,暂时没找到,先记录下这个事情。都过去了一个月了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 大雄宝殿 大众一瞻尊容自然无惊无怖无畏, 仁者顿得妙解毕竟非风非幡非心。 ...
    无影树阅读 286评论 1 4
  • ■ 写给年初四 除夕草草地过去了。说好的辞旧迎新,似乎只是应景式的套话,身上除了陈旧只增添了更多地陈旧。 ...
    七峰逸子阅读 680评论 1 3
  • 今天,男朋友的姐姐没带梁博然上课,当时的第一想法就是,是不是他说我们要分手了,他姐姐不好意思来了。天啊,果...
    娟子_35f3阅读 198评论 0 0