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

出现Couldn't find meta-data for provider报错,咨询对应FileProvider代码放置位置

FileProvider代码使用说明

代码放置位置

你给出的FileProvider.getUriForFile(Objects.requireNonNull(getApplicationContext()), BuildConfig.APPLICATION_ID + ".provider", file);代码作用是将本地文件路径转换为系统认可的Content URI,用于Android 7.0及以上版本跨应用共享文件场景,通常放在以下业务逻辑位置:

  • 调用系统相机拍照时:生成拍照输出的目标URI,写在触发拍照的逻辑中
  • 安装本地APK文件时:生成APK文件对应的URI传入安装Intent,写在触发APK安装的逻辑中
  • 分享本地文件到其他应用时:生成待分享文件的URI传入分享Intent,写在触发分享的逻辑中

配套配置(解决找不到provider metadata报错)

你碰到的provider metadata缺失报错,是因为没有完成FileProvider的系统注册配置,按以下步骤操作即可修复:

  1. 在AndroidManifest.xml的<application>节点内添加provider注册代码:
<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.provider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>

提示:此处android:authorities的取值必须和代码里传入的第二个参数完全一致,否则依然会触发匹配失败报错

  1. 在res/xml目录下新建file_paths.xml文件,配置允许共享的文件路径范围,示例如下:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 配置共享外置存储根目录下的所有文件,可根据实际业务调整路径范围 -->
    <external-path name="external_all" path="." />
    <!-- 配置共享APP内置私有存储目录下的所有文件 -->
    <files-path name="internal_all" path="." />
</paths>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:57:00