当前位置: 首页 > 知识库问答 >
问题:

Android文件提供程序:IllegalArgumentExc0019:未能找到配置的根,其中包含

周浩淼
2023-03-14

我有一个关于android文件提供商的问题。我想保存一个pdf文档并用默认程序打开它。我不想将其保存在外部存储器中。

在我成功地将pdf保存到filedirectory/export/temp之后。pdf,
我尝试使用FileProvider生成URI。getUriForFile()。

File path = new File(getFilesDir(), "export");
File pdf = new File(path + File.separator + "temp.pdf");
pdf.getParentFile().mkdirs();

if (!pdf.exists())
    pdf.createNewFile();

Uri uri = FileProvider.getUriForFile(getApplicationContext(), "?", pdf);

问题:我必须传递什么作为第二个参数“Authority”-我的文件的位置、可以授予URI权限的类或其他什么?无论我尝试了什么,都会导致IllegalArgumentException或NullPointerException。我的文件提供程序(XML):

<provider         
    android:name="android.support.v4.content.FileProvider"           
        android:authorities="com.example.myApp.myActivity"
        android:exported="false"
        android:grantUriPermissions="true">

        <meta-data                 
             android:name="android.support.FILE_PROVIDER_PATHS"                           
             android:resource="@xml/file_path"/>                                       
</provider>

引用文件:

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

共有2个答案

欧阳杰
2023-03-14

根据FileProvider文件(XML),第二个参数是com.example.myApp.my活动。那就是

Uri uri = FileProvider.getUriForFile(getApplicationContext(),
                                     "com.example.myApp.myActivity", pdf);
李兴安
2023-03-14

我拿到了。有两个不同的问题

>

我试图从filedirectory获取一个文件,但在我的file_路径中,我只声明了一个到缓存目录的路径。我把它改成了“文件路径”,它就工作了。此错误导致IllegalArgumentException。

 类似资料: