You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose截图未捕获rememberImagePainter加载内容导致崩溃怎么解决?

问题根因

你遇到的崩溃是Software rendering doesn't support hardware bitmaps异常导致的:

  • Coil的rememberImagePainter加载网络图片时,默认会开启硬件位图配置提升渲染性能,硬件位图仅支持在硬件加速的Canvas上绘制
  • 你自定义截图逻辑中通过Bitmap.createBitmap创建的画布默认是软件渲染类型,无法绘制硬件位图,所以仅在加载网络图片时触发崩溃,本地Drawable资源加载的是普通软件位图,不会触发问题。

解决方案

方案1:禁用Coil加载网络图片时的硬件位图配置

修改rememberImagePainter的配置,主动关闭硬件位图即可,该方案修改成本最低,不影响其他逻辑,是首选解决方案:

rememberImagePainter(
    data = player.playerImageUrl,
    builder = {
        allowHardware(false)
    }
)

方案2:确保截图时图片已加载完成

如果不想关闭硬件位图带来的性能提升,可以给rememberImagePainter添加加载状态监听,仅当图片加载成功后才允许触发截图操作,避免绘制未就绪的硬件位图。

方案3:修改截图逻辑使用硬件画布

如果你使用的系统版本在Android O及以上,可以修改截图逻辑,使用硬件加速的画布绘制视图,兼容硬件位图的绘制要求。

内容的提问来源于stack exchange,提问作者alfietap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:15:02