Android 7.0及以上FileProvider巨坑Failed to find configured root that contains

module中AndroidManifest.xml基本配置

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

问题描述

当多个module分别独立使用FILE_PROVIDER_PATHS时,只有一个module的file_paths文件是有效的

例如:有如下依赖,运行发现order module中配置的FILE_PROVIDER_PATHS未被识别,抛出Failed to find configured root that contains异常

app <- mine  <- ptoho
    <- order <- photo

ptoho modulefile_paths文件

<resources>
    <paths>
        <cache-path path="photos/camera" name="photos" />
        <external-cache-path path="photos/camera" name="photos" />
    </paths>
</resources>

mine modulefile_paths文件

<resources>
    <paths>
        <cache-path path="avatar/camera" name="avatar" />
        <external-cache-path path="avatar/camera" name="avatar" />
    </paths>
</resources>

order modulefile_paths文件

<resources>
    <paths>
        <cache-path path="review/camera" name="review" />
        <external-cache-path path="review/camera" name="review" />
    </paths>
</resources>

解决方案

所有配置放在主app module或其中一个子module中

上一篇 golang开启mod后import报红解决
下一篇 WordPress githuber-md插件xml代码块不显示解决
目录
文章列表
1 Gradle 设置 Nexus 用户名密码
Gradle 设置 Nexus 用户名密码
2
Android电源锁和屏幕锁帮助类
Android电源锁和屏幕锁帮助类
3
PHP使用curl提交json格式数据
PHP使用curl提交json格式数据
4
如何选择正确的Node框架:Next, Nuxt, Nest?
如何选择正确的Node框架:Next, Nuxt, Nest?
5
本地Node环境搭建
本地Node环境搭建
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。