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

Android 12拍摄HEIF图片时Flutter image_picker插件崩溃求助

Android 12下拍摄HEIF照片触发应用崩溃的解决办法
  • 已遇到过相同场景的问题:image_picker 0.8.6版本在Android 12系统处理HEIF格式照片时,存在Native层文件解析逻辑漏洞,会触发无声崩溃——这就是调试器无输出、Crashlytics抓不到日志的原因,因为崩溃未上报到Flutter层。而示例项目因环境简单(无复杂页面栈、权限拦截),所以无法复现。

  • 具体修复方案:

    1. 优先升级依赖版本:image_picker 0.8.7及后续版本已修复该HEIF兼容问题,直接升级到适配Flutter 3.3.x的稳定版(如0.10.5+3)即可解决。
    2. 临时规避方案(无法升级时):
      • 调用拍照接口时强制指定输出格式为JPEG,绕过HEIF处理逻辑:
        final XFile? photo = await ImagePicker().pickImage(
          source: ImageSource.camera,
          imageQuality: 80,
          preferredCameraDevice: CameraDevice.rear,
        );
        
      • 在AndroidManifest.xml中添加HEIF格式支持声明,减少系统层面的格式解析冲突:
        <meta-data
            android:name="android.content.extra.SUPPORTED_IMAGE_FORMATS"
            android:value="image/jpeg,image/heif"/>
        
    3. 排查应用生命周期冲突:大型应用的复杂页面栈可能导致拍照返回时Activity状态异常,需确保处理拍照结果的页面处于活跃状态,避免在页面dispose后执行结果回调。
    4. Native日志定位:若以上方案无效,通过Android Studio Logcat过滤AndroidRuntime标签,获取Native层崩溃堆栈,精准定位问题代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:10:45