27

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

java.lang.IllegalArgumentException:找不到配置的根目录包含/data/data/pkg name/cache/1487876607264.png

我想将它用于缓存目录,如何在提供者中提供路径

<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);

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

有什么帮助吗?

4

2 回答 2

53

使用<cache-path>,不使用<external-path>。请参阅文档

于 2017-02-23T19:16:22.253 回答
0

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

于 2021-08-12T05:08:20.610 回答