【问题标题】:Getting FileProvider error: "Failed to find configured root that contains"获取 FileProvider 错误:“无法找到包含的已配置根”
【发布时间】:2021-11-22 15:38:30
【问题描述】:

此错误出现在此处的其他几篇文章中,但我认为即使我遵循了其中的内容,我仍然没有得到正确的结果。

我在我的 java 类中定义了对 getUriFromFile 的调用:

   File imagePath = new File(file.getAbsolutePath());
   Uri contentUri = FileProvider.getUriForFile(Objects.requireNonNull(getContext().getApplicationContext()),
                packageName+".fileprovider", imagePath);

文件正在保存在文件夹中:/data/data/{packageName}/images

我在我的 AndroidManifest 中这样设置提供程序:

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

注意:{packageName} 字面意思是包的名称,例如 com.package.packagename。

最后是我的 provider_paths XML 文件:

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

我做错了什么?

【问题讨论】:

    标签: java android android-manifest android-fileprovider


    【解决方案1】:

    /data/data/{packageName}/images

    FileProvider 无法访问该路径。

    制作:

    /data/data/{packageName}/files/images
    

    应该以getFilesDir()开头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      相关资源
      最近更新 更多