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

Cordova构建失败:AndroidManifest.xml中camera uses-feature元素重复

解决Cordova构建时AndroidManifest.xml重复camera uses-feature的问题

我来帮你搞定这个烦人的重复标签问题!手动删除后又自动生成,是因为phonegap-plugin-barcodescanner插件或者Cordova的构建流程在每次编译时都会自动插入这个标签,咱们得从根源上阻止它重复添加。下面是几个靠谱的解决方案:

方法1:通过config.xml强制移除重复条目

你可以在项目根目录的config.xml里添加edit-config指令,让Cordova在构建时自动清理重复的uses-feature标签:

<platform name="android">
    <!-- 移除重复的不带required属性的camera uses-feature -->
    <edit-config file="AndroidManifest.xml" target="/manifest/uses-feature[@android:name='android.hardware.camera']" mode="delete" />
    <!-- 保留带required=true的那一条(如果需要的话) -->
    <uses-feature android:name="android.hardware.camera" android:required="true" />
</platform>

添加完之后,重新执行构建命令cordova build android,这样Cordova会在构建过程中自动删除重复的条目,只保留你指定的那一条。

方法2:修改插件的plugin.xml文件

如果方法1没生效,可能是插件本身的配置问题。你可以直接修改插件的配置文件,让它只添加一次uses-feature:

  1. 找到项目里的插件目录:plugins/phonegap-plugin-barcodescanner
  2. 打开里面的plugin.xml文件
  3. 搜索<uses-feature android:name="android.hardware.camera" />这一行,把它删掉(因为插件已经添加了带required="true"的那一条)
  4. 保存文件后,执行cordova clean android清理旧构建文件,再重新构建

这样插件在安装或构建时就只会添加一次camera的权限声明了。

方法3:用构建钩子脚本自动清理

如果上面两种方法都不行,咱们可以写一个简单的Node.js钩子脚本,在构建前自动处理AndroidManifest.xml:

  1. 在项目根目录创建hooks/before_build/remove_duplicate_camera_feature.js文件
  2. 写入以下代码:
const fs = require('fs');
const path = require('path');

module.exports = function(context) {
    const manifestPath = path.join(context.opts.projectRoot, 'platforms/android/app/src/main/AndroidManifest.xml');
    let content = fs.readFileSync(manifestPath, 'utf8');
    
    // 移除重复的不带required属性的camera uses-feature
    content = content.replace(/<uses-feature android:name="android.hardware.camera" \/>/g, '');
    fs.writeFileSync(manifestPath, content, 'utf8');
};
  1. 给脚本添加执行权限(Linux/macOS下):chmod +x hooks/before_build/remove_duplicate_camera_feature.js
  2. 重新执行构建,脚本会在每次构建前自动清理重复的标签

注意事项

  • 执行任何修改前,最好先备份你的config.xml和插件文件,避免意外问题
  • 如果修改插件后,后续更新插件可能会覆盖你的修改,所以方法1或方法3更适合长期解决

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:35:18