android - Android FileProvider - java.lang.IllegalArgumentException:在尝试拍摄视频时无法找到包含 /data/data/ 的已配置根目录
问题描述
目前,我正在尝试使用以下 kotlin 代码片段在我的应用中拍摄视频
private fun dispatchTakeVideoIntent() {
Intent(MediaStore.ACTION_VIDEO_CAPTURE).also { takeVideoIntent ->
val pather = File(filesDir, "Videos")
pather.mkdirs()
val file = File(pather,"VideoFileName.mp4")
takeVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(this, "$packageName.fileprovider", file))
takeVideoIntent.resolveActivity(packageManager)?.also {
startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE)
}
}
}
但我在“takeVideoIntent.putExtra ...”行收到以下错误。
java.lang.IllegalArgumentException: Failed to find configured root that contains /data/data/...
我的清单中有以下提供程序
<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/provider_paths" />
</provider>
xml 提供程序路径文件看起来像这样
<paths>
<files-path path="my_docs" name="Videos/" />
</paths>
有什么建议么?
解决方案
推荐阅读
- asp.net-mvc - Visual Studio 2017 - Web 部署 - 连接字符串问题
- java - Java/JavaFX:如何使用 CSS-command 获取资源文件夹(路径)
- css - 将 div 预加载器覆盖到部分元素
- javascript - ElectronJS - 使用本地键盘快捷键在 Teaxtarea 中制作粗体文本
- java - 使用 jnativehook 库 Maven JAR 创建 jar 时出现问题
- jquery - 使用 CSS、ajax 和 jQuery 将新行添加到 div 生成的表中
- objective-c++ - 如何停止()主线程 NSApp run()事件循环?(嵌入在 C++ 中)
- c - C语言指针相关问题
- extjs - 如何知道视图模型中的数据是否已更改?
- javascript - 未捕获的类型错误:无法读取未定义的属性“框架”-PHASER3