【发布时间】:2019-03-13 14:56:50
【问题描述】:
我正在扩展我的适用于 Android 的 Cordova 插件以使用相机。在广泛阅读有关该主题的各种 Android 开发人员文章以及该论坛上的主题之后,我完成了以下操作
在我的插件 config.xml 文件中
<provider android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.app.camera" android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/reviewpics"/>
</provider>
随着
<resource-file src="src/android/xml/reviewpics.xml"
target="res/xml/reviewpics.xml" />
为了更好地衡量,我将编译后的 APK 作为 zip 存档打开并检查 res/xml/reviewpics.xml 确实存在。
reviewpics.xml
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="camera" path="."/>
</paths>
将应用的根内部存储位置共享为camera。
在应用程序中我执行以下操作
File photo = new File(...);
Uri uri =
FileProvider.getUriForFile(cordova.getActivity(),
"com.example.app.camera",photo);
但是,当我编译、安装和运行它时,我总是收到消息
尝试在空对象引用上调用虚拟方法 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)'
很明显,我做错了什么,尽管我觉得我已经完全按照各种示例和教程进行操作。有人能告诉我我在这里缺少什么吗?
【问题讨论】:
标签: cordova android-camera android-fileprovider