You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置config.xml解决Ionic+Cordova构建时相机插件重复问题

解决Ionic+Cordova中AndroidManifest.xml重复相机uses-feature节点问题

执行ionic cordova prepare android后,AndroidManifest.xml会出现重复的<uses-feature android:name="android.hardware.camera"/>节点(分别带required="false"和required="true"属性),必须手动删除才能正常部署。你之前尝试的edit-config配置无效,可通过以下几种方式解决:

方法一:先移除所有重复节点,再添加统一配置

在config.xml中添加以下配置,先清理所有冲突的相机feature节点,再添加你需要的单一配置:

<!-- 移除所有名称为android.hardware.camera的uses-feature节点 -->
<remove-config file="app/src/main/AndroidManifest.xml" target="/manifest/uses-feature[@android:name='android.hardware.camera']"/>

<!-- 添加你需要的相机相关feature和权限 -->
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>

注意:如果你的项目中AndroidManifest.xml路径不同(比如旧版Cordova可能是platforms/android/AndroidManifest.xml),请调整file属性的路径。

方法二:统一相机插件的配置参数

重复节点通常是多个依赖相机的插件(比如cordova-plugin-camera、扫码插件等)各自添加feature导致的。可以在config.xml中给相机插件指定统一的required属性,避免重复生成:

<plugin name="cordova-plugin-camera" spec="^6.0.0">
    <!-- 根据需求设置CAMERA_REQUIRED为true或false,确保所有插件统一配置 -->
    <variable name="CAMERA_REQUIRED" value="false"/>
</plugin>

如果还有其他依赖相机的插件,也需要检查其文档,设置对应的参数来控制uses-feature的生成。

验证方法

修改config.xml后,执行ionic cordova prepare android --clean,重新生成Android平台文件,此时查看AndroidManifest.xml,应该已经自动清理了重复节点,无需手动修改。

内容的提问来源于stack exchange,提问作者max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:02:07