Android CACHE DIR 的 FileProvider:找不到已配置的根包含

Android FileProvider for CACHE DIR : Failed to find configured root that contains

我找到了很多与 FileProvider 相关的链接,但我没有找到 缓存目录

的解决方案

java.lang.IllegalArgumentException: Failed to find configured root that contains /data/data/pkg name/cache/1487876607264.png

我想将其用于 CACHE DIRECTORY,如何在 provider.

中提供路径
<paths>
    <external-path name="external_files" path="."  />
</paths>

我将其用作:

File file = new File(context.getCacheDir(), System.currentTimeMillis() + ".png");

Uri uri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".provider", file);

如果我提供应用程序文件夹路径但不使用 缓存目录,它工作正常。

有帮助吗?

使用 <cache-path>,而不是 <external-path>。参见 the documentation

在我的例子中,我对两个不同的路径使用相同的名称。唯一的工作路径是最后一个。因此,请确保为每个路径指定唯一的名称。