Android 内部存储-IllegalArgumentException:未能找到包含…/file.pdf的已配置根目录

Android 内部存储-IllegalArgumentException:未能找到包含…/file.pdf的已配置根目录,android,kotlin,android-fileprovider,Android,Kotlin,Android Fileprovider,大家早上好。我发现自己不得不解决这个小问题,但我不明白我错在哪里。 实际上,我在设备内创建了一个文件夹,在那里我下载了一个pdf文件,一个我可以打开阅读的文件。 我还想使用手机提供的应用共享文件,然后使用外部应用共享文件 然而,我总是收到相同的错误。谁能告诉我哪里错了 错误显示为:java.lang.IllegalArgumentException:未能找到包含/data/data/com.example.myapp/app\u downloaddedfiles/file.pdf的配置根目录 位

大家早上好。我发现自己不得不解决这个小问题,但我不明白我错在哪里。 实际上,我在设备内创建了一个文件夹,在那里我下载了一个pdf文件,一个我可以打开阅读的文件。 我还想使用手机提供的应用共享文件,然后使用外部应用共享文件 然而,我总是收到相同的错误。谁能告诉我哪里错了

错误显示为:java.lang.IllegalArgumentException:未能找到包含/data/data/com.example.myapp/app\u downloaddedfiles/file.pdf的配置根目录 位于androidx.core.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:744) 位于androidx.core.content.FileProvider.getUriForFile(FileProvider.java:418)

如何创建目录: val testDir=MainActivity.applicationContext().getDir(“下载的文件”, Context.MODE_PRIVATE) testDir.mkdirs()

AndroidManifest.xml:

<application
    <provider
        android:name=".FileProvider"
        android:authorities="com.example.myapp"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths"/>
    </provider>

</application>

/data/data/com.example.myapp/app\u下载文件/file.pdf
这是错误的路径。您应该将pdf文件放入
文件
目录,如
/data/data/com.example.myapp/files/downloaddedfiles/file.pdf
。您是否看到getDir()将
应用程序添加到
下载文件
?当心。getFilesDir()。
  <?xml version="1.0" encoding="utf-8"?>
  <paths>
      <external-path
          name="external"
          path="." />
      <external-files-path
          name="external_files"
          path="." />
      <cache-path
          name="cache"
          path="." />
      <external-cache-path
          name="external_cache"
          path="." />
      <files-path
          name="files"
          path="." />
  </paths>
   fun shareFile(get: MyFile) {
           val uri = FileProvider.getUriForFile(
               MainActivity.applicationContext(),
               "com.example.myapp",
               File(MainActivity.applicationContext()
                   .getDir("DownloadedFiles",
                       Context.MODE_PRIVATE),
                   get.title + ".pdf")
           )

           val myIntent = Intent(Intent.ACTION_VIEW)
           myIntent.setDataAndType(uri, "application/pdf")
           myIntent.flags = FLAG_GRANT_READ_URI_PERMISSION or FLAG_GRANT_WRITE_URI_PERMISSION
           MainActivity.instanceMainActivity?.startActivity(myIntent)
       }