Android 共享来自资产的PDF。FileUrieExposedException
我想打开PDF,该文件保存在app/assets/PDF\u name.PDF中 我使用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
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突出显示了错误:它应该包含路径,所以我放弃了这个想法。不管它是如何编译的,毕竟还是有效的。