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

工作配置文件中FilePicker触发already_active异常的技术求助

工作配置文件中FilePicker触发"already_active"异常问题

我的手机设有个人和工作两个配置文件,FilePicker在个人配置文件中运行正常,但在工作配置文件中调用时抛出如下异常:

[MethodChannelFilePicker] Platform exception: PlatformException(already_active, File picker is already active, null, null)
E/flutter (16388): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(already_active, File picker is already active, null, null)
E/flutter (16388): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:652:7)
E/flutter (16388): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:310:18)
E/flutter (16388): <asynchronous suspension>
E/flutter (16388): #2      MethodChannel.invokeListMethod (package:flutter/src/services/platform_channel.dart:496:35)
E/flutter (16388): <asynchronous suspension>
E/flutter (16388): #3      FilePickerIO._getPath (package:file_picker/src/file_picker_io.dart:92:33)
E/flutter (16388): <asynchronous suspension>
E/flutter (16388): #4      _UploadFileWidgetState.selectFile (package:feeta/views/other_widgets/upload_file_widget.dart:40:32)
E/flutter (16388): <asynchronous suspension>

调用FilePicker的代码

Future<void> selectFile() async {
    FilePickerResult? result = await FilePicker.platform.pickFiles(
      type: FileType.custom,
      allowedExtensions: ['pdf', 'jpg', 'jpeg', 'png'],
      allowMultiple: false,
    );

    if (result != null && result.files.isNotEmpty) {
      File selected = File(result.files.single.path!);
      String fileExtension = selected.path.split('.').last.toLowerCase();

      if (fileExtension == 'pdf' || fileExtension == 'jpg' ||
          fileExtension == 'jpeg' || fileExtension == 'png') {
        int fileSize = selected.lengthSync();
        if (fileSize <= 1024 * 1024) {
          if (widget.dialogType == "postLeave") {
            _allLeaveViewModel.selectedFile.value = selected;
            print("SelectedFile1: ${_allLeaveViewModel.selectedFile.value}");
          } else {
            _myLeavesViewModel.selectedFile.value = selected;
            print("SelectedFile2: ${_myLeavesViewModel.selectedFile.value}");
          }
          setState(() {
            selectedFile = selected;
          });
        } else {
          showFileSizeExceededDialog();
        }
      } else {
        showInvalidFileTypeDialog();
      }
    }
  }

项目依赖配置

cupertino_icons: ^1.0.2
  http: ^1.0.0
  #webview_flutter: ^4.2.2
  flutter_inappwebview: ^5.7.2
  #flutter_html: ^3.0.0-beta.2
  flutter_secure_storage: ^8.0.0
  dio: ^5.3.2
  jwt_decoder: ^2.0.1
  file_picker: ^5.3.3

出现问题的设备列表

  • Redmi Note 8 - OS 12.5.2 - Android 11
  • Redmi Note 8 pro - OS 12.5.10 - Android 11
  • Redmi Note 9 - OS 12.5.6 - Android 11
  • OnePlus 8t - OS 13.1 - Android 13

请问为何仅在工作配置文件中会出现该问题?是否需要针对工作配置文件对FilePicker进行特殊处理?恳请提供帮助或建议!


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:15:01