怎么可能在清单中有多个相同类型的提供者?由于cordova相机插件带来了文件提供商,我们的应用程序无法再构建.在清单中我们有以下内容:
<provider android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" android:name="android.support.v4.content.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/>
</provider>
<provider android:authorities="com.our.app.dev.fileprovider" android:exported="false" android:grantUriPermissions="true" android:name="android.support.v4.content.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_provider_paths"/>
</provider>
第一个条目来自相机插件,第二个来自我们的一个插件.
在生成过程中,会出现以下错误:
AndroidManifest.xml:44:5-46:16 Error:
Element provider#android.support.v4.content.FileProvider at AndroidManifest.xml:44:5-46:16 duplicated with element declared at AndroidManifest.xml:41:5-43:16
谢谢!
解决方法:
我认为这不是一个cordova问题,而是在android构建过程中.至少我可以在简单的Android Studio和Gradle设置中重现它:
看来android有两个具有相同名称属性的标签是不行的.我不明白为什么这是一个问题,只要你有不同的权限,它应该工作正常.但这也导致了一个解决方案:
在您的插件中(或您想要使用的插件的自己的分支).您创建自己的FileProvider.java,它只是扩展了原始的android.support.v4.content.FileProvider
package com.our.app.dev;
public class FileProvider extends android.support.v4.content.FileProvider {
}
在您的插件配置中,您链接到此FileProvider,它现在具有不同的包名称,从而避免此问题.希望这有用,对我来说似乎可以解决问题.
原文地址:https://codeday.me/bug/20190627/1309174.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。