Flutter image_picker插件在Redmi Note 9选图时重启应用问题求助
Redmi Note 9 上 image_picker 导致 MainActivity 重启(内存充足场景)的修复方案及替代包
修复方案
- 调整图片选择参数限制大小:给
image_picker设置maxWidth、maxHeight和imageQuality,压缩图片尺寸和质量——哪怕设备内存充足,MIUI 对单应用内存阈值可能有特殊限制,缩小图片能降低内存压力。示例代码:
final XFile? image = await ImagePicker().pickImage( source: ImageSource.gallery, maxWidth: 1920, maxHeight: 1080, imageQuality: 80, );
- 开启应用大内存堆:在
android/app/src/main/AndroidManifest.xml的<application>标签里添加android:largeHeap="true",让应用能分配更多内存,绕过厂商的内存限制。 - 检查 MIUI 权限和后台限制:Redmi 的 MIUI 后台管理严格,调用相册时应用切到后台可能被回收。给应用开启「自启动权限」「后台运行权限」,关掉「省电模式」里对该应用的限制。
- 更新 image_picker 到最新版:官方可能已经修复了 MIUI 设备的兼容性问题,把依赖升级到最新版本试试。
替代包选择
image_cropper+gallery_saver:如果只是从相册选图,用这两个包组合,直接获取图片文件路径,避开image_picker可能的内存管理问题。flutter_image_picker:第三方维护的分支版本,专门针对国内厂商设备做了兼容性优化。file_picker:直接选择图片文件,拿到路径后自行处理图片加载,灵活性更高,能更好控制内存使用。
内容的提问来源于stack exchange,提问作者Imesh Jeewantha
相关产品推荐
相关产品推荐

