Android 内部存储-IllegalArgumentException:未能找到包含…/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: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的配置根目录 位
<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)
}