Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 共享来自资产的PDF。FileUrieExposedException_Android_Android Assets_Android Fileprovider - Fatal编程技术网

Android 共享来自资产的PDF。FileUrieExposedException

Android 共享来自资产的PDF。FileUrieExposedException,android,android-assets,android-fileprovider,Android,Android Assets,Android Fileprovider,我想打开PDF,该文件保存在app/assets/PDF\u name.PDF中 我使用 File f=新文件(getContext().getCacheDir()+/pdf_name.pdf”); 如果内容的形式://使用 uripdfuri=FileProvider.getUriForFile(getContext(),“pcg_name.FileProvider”,file); 但是我有 java.lang.IllegalArgumentException:找不到配置的根目录 包含 /da

我想打开PDF,该文件保存在app/assets/PDF\u name.PDF中

我使用
File f=新文件(getContext().getCacheDir()+/pdf_name.pdf”);

如果内容的形式://使用

uripdfuri=FileProvider.getUriForFile(getContext(),“pcg_name.FileProvider”,file);

但是我有

java.lang.IllegalArgumentException:找不到配置的根目录 包含 /data/data/pck_name/cache/pdf_name.pdf

虽然我已经配置好了

<paths>
    <cache-path
        name="my_documents"
        path="assets/"/>
    <cache-path
        name="my_pdf"
        path="cache/"/>
</paths>
因为它抛出文件Uri暴露异常

我使用

这些代码与资产无关。资产是开发机器上的文件;它们不是设备上的文件,除非您手动将内容复制到文件中

也许您有问题中未显示的代码,您将文件从资产复制到了新文件(getContext().getCacheDir()+/pdf\u name.pdf”)

虽然我已经配置好了

<paths>
    <cache-path
        name="my_documents"
        path="assets/"/>
    <cache-path
        name="my_pdf"
        path="cache/"/>
</paths>
对于
新文件(getContext().getCacheDir()+/pdf\u name.pdf”)
,这两个属性都无效。删除一个
元素,并从另一个
元素中删除
路径
属性,这样您就可以:

<paths>
  <cache-path name="my_pdf"/>
</paths>

你挽救了我的一天。我离你很近,因为当我第一次只键入名称时,Android Studio突出显示了错误:它应该包含路径,所以我放弃了这个想法。不管它是如何编译的,毕竟还是有效的。