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

Flutter使用image_picker_plus在小米手机上传图片时应用崩溃求助

解决Redmi Note 7S上Flutter图片上传时相机崩溃重启问题
  • 替换第三方插件
    image_picker_plus这款插件的兼容性反馈较少,建议切换到Flutter官方维护的image_picker插件(优先使用最新稳定版)。官方插件针对国内机型做了更多适配,很多小米机型的相机崩溃问题已经被修复。基本调用示例:

    import 'package:image_picker/image_picker.dart';
    
    final picker = ImagePicker();
    final XFile? image = await picker.pickImage(
      source: ImageSource.camera,
      imageQuality: 70, // 开启压缩减少内存压力
    );
    
  • 严格配置并动态申请权限
    小米系统权限管控较严,确保AndroidManifest.xml中添加必要权限:

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <!-- Android 13+ -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    

    同时在代码中动态申请相机、存储权限,避免因权限缺失触发系统强制回收进程。

  • 降低图片内存占用
    Redmi Note 7S属于中低端机型,内存容量有限。选择图片时通过参数限制图片大小:

    final XFile? image = await picker.pickImage(
      source: ImageSource.camera,
      maxWidth: 1920,
      maxHeight: 1080,
      imageQuality: 60,
    );
    

    这样可以大幅减少图片加载时的内存消耗,避免OOM导致应用重启。

  • 适配小米系统特殊设置
    小米的「应用省电模式」「后台进程限制」可能会在相机启动时杀死应用进程。可以引导用户进入手机设置:

    1. 找到应用列表中的你的App
    2. 进入「省电与电池」设置
    3. 关闭「省电模式」或设置为「无限制」
      也可以在代码中申请忽略电池优化权限,减少系统对应用的后台限制。
  • 抓取详细崩溃日志
    之前的日志信息不足,建议用Android Studio的Logcat过滤AndroidRuntime关键词,或者集成Crashlytics捕获完整崩溃堆栈,这样能精准定位是插件底层的Native代码问题,还是系统层面的冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:07:19