文件提供程序异常:找不到包含的已配置根目录
File Provider Exception : Failed to find configured root that contains
我正在尝试使用相机 Intent 捕获图像并将其发送到服务器。
我已经关注了官方文档https://developer.android.com/training/camera/photobasics
但是在使用 FileProvider 从文件路径获取 Uri 时出现异常。
我遇到异常
Failed to find configured root that contains /storage/emulated/0/Android/data/com.example.app/files/Pictures/JPEG_20200310_160944_8900302509758571991.jpg
代码:
file_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-files-path name="my_images" path="Android/data/com.example.app/files" />
</paths>
AndroidManifest.xml
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.example.app.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/>
</provider>
CameraActivity.kt
private fun dispatchTakePictureIntent() {
Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent ->
takePictureIntent.resolveActivity(packageManager)?.also {
val photoFile: File? = try {
viewModel.createFile()
} catch (ex: IOException) {
// Error occurred while creating the File
null
}
photoFile?.also {
photoURI= FileProvider.getUriForFile(
this,
"com.example.app.fileprovider",
it
)
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI)
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO)
}
}
}
}
请帮我找出我错在哪里。
虽然在Whosebug上查看了可能的答案,但无法解决。
替换:
path="Android/data/com.example.app/files"
与:
path="."
<external-files-path>
已经指向您在 path
中识别的位置。
我正在尝试使用相机 Intent 捕获图像并将其发送到服务器。
我已经关注了官方文档https://developer.android.com/training/camera/photobasics
但是在使用 FileProvider 从文件路径获取 Uri 时出现异常。
我遇到异常
Failed to find configured root that contains /storage/emulated/0/Android/data/com.example.app/files/Pictures/JPEG_20200310_160944_8900302509758571991.jpg
代码:
file_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-files-path name="my_images" path="Android/data/com.example.app/files" />
</paths>
AndroidManifest.xml
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.example.app.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/>
</provider>
CameraActivity.kt
private fun dispatchTakePictureIntent() {
Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent ->
takePictureIntent.resolveActivity(packageManager)?.also {
val photoFile: File? = try {
viewModel.createFile()
} catch (ex: IOException) {
// Error occurred while creating the File
null
}
photoFile?.also {
photoURI= FileProvider.getUriForFile(
this,
"com.example.app.fileprovider",
it
)
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI)
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO)
}
}
}
}
请帮我找出我错在哪里。
虽然在Whosebug上查看了可能的答案,但无法解决。
替换:
path="Android/data/com.example.app/files"
与:
path="."
<external-files-path>
已经指向您在 path
中识别的位置。