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

Flutter安卓真机使用image_picker打开图库为何提示Lost device connection?

Flutter安卓真机使用image_picker跳转图库页面闪退解决方案

故障表现

调用ImageSource.gallery打开图库时,「最近照片」页面可正常选择图片,切换到完整图库页面后直接弹出Lost device connection提示,随后应用白屏。
现有实现代码:

_processImage(ImageSource image) async {
  final ImagePicker picker = ImagePicker();
  file = await picker.pickImage(source: image);
  setState(() {}); 
}

修复方案

  • 适配安卓各版本存储权限声明
    在项目android/app/src/main/AndroidManifest.xml文件中添加对应权限:
    <!-- 安卓13及以上系统图片权限 -->
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <!-- 安卓12及以下系统存储权限 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    
  • 调用选图逻辑前先完成权限校验
    搭配permission_handler库提前请求权限,避免触发系统权限拦截导致崩溃,修改后代码参考:
    import 'dart:io';
    import 'package:device_info_plus/device_info_plus.dart';
    import 'package:permission_handler/permission_handler.dart';
    
    _processImage(ImageSource image) async {
      // 安卓端先校验权限
      if (Platform.isAndroid) {
        final androidInfo = await DeviceInfoPlugin().androidInfo;
        PermissionStatus status;
        if (androidInfo.version.sdkInt >= 33) {
          status = await Permission.photos.request();
        } else {
          status = await Permission.storage.request();
        }
        if (!status.isGranted) {
          // 可自行补充权限拒绝的提示逻辑
          return;
        }
      }
      final ImagePicker picker = ImagePicker();
      // 增加图片参数限制,避免大图加载引发内存崩溃
      file = await picker.pickImage(
        source: image,
        maxWidth: 1080,
        maxHeight: 1920,
        imageQuality: 85
      );
      if (file != null) {
        setState(() {});
      }
    }
    
  • 升级image_picker到最新稳定版,避免库本身的兼容性缺陷
    执行命令更新依赖:
    flutter pub upgrade image_picker
    
  • 若仍未修复,可开启安卓端日志过滤,搜索AndroidRuntime关键字查看原生崩溃栈,定位具体异常原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:48:02