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

Flutter集成flutter_webview_pro遇文件选择权限元数据缺失错误求助

问题排查与解决方案

核心原因

该错误源于Android端未正确配置FileProvider元数据,flutter_webview_pro在处理文件选择(尤其是相机拍摄场景)时,依赖FileProvider实现文件资源的安全共享,缺失配置会导致权限验证失败。

具体修复步骤

1. 配置AndroidManifest.xml

在android/app/src/main/AndroidManifest.xml的<application>标签内添加FileProvider配置:

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>

注:${applicationId}会自动替换为你的应用实际包名,无需手动硬编码。

2. 创建file_paths.xml文件

在android/app/src/main/res/xml/目录下新建file_paths.xml文件(若xml目录不存在则先创建),写入以下内容:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-files-path name="my_images" path="Pictures" />
    <external-cache-path name="my_cache" path="Pictures" />
    <files-path name="my_files" path="Pictures" />
</paths>

该文件定义了FileProvider可访问的文件路径,覆盖相机拍摄后可能的存储位置。

3. 确认权限配置

确保AndroidManifest.xml中已添加必要权限:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

针对Android 13及以上版本,需额外添加媒体权限:

<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />

4. 更新依赖并重启应用

执行命令确保依赖同步:

flutter pub get

修改Android配置后,需完全停止当前应用进程再重新编译运行,避免缓存导致配置不生效。

5. 可选优化

若你的业务未直接调用相机功能,可移除pubspec.yaml中的camera: ^0.10.0+1依赖,减少潜在冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:15:44