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

如何为同一个FileProvider配置多个authorities解决运行崩溃问题

崩溃原因

Android Manifest的android:authorities属性本身确实支持分号分隔多个值,但FileProvider的官方实现并未适配多authority场景,它初始化时会直接把android:authorities的完整取值当作单一authority去查找对应的meta-data配置,因此会抛出你遇到的非法参数异常。

解决方案

无需强行给同一个FileProvider实例配置多authority,通过注册两个独立的Provider节点即可解决:

  1. 先创建一个空类继承FileProvider,不需要重写任何方法:
// 已适配AndroidX的导入写法,用support库则替换为对应包名
import androidx.core.content.FileProvider;

public class CustomFileProvider extends FileProvider {
}
  1. 在AndroidManifest.xml中注册两个Provider节点,分别对应两个库要求的authority,两者可共用同一份路径配置:
<!-- 适配要求 ${applicationId}.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}.provider 的库 -->
<provider 
    android:name=".CustomFileProvider" 
    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>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:36:03