問題背景:
ionic3項目上,添加cordova-plugin-cszbar,編譯運行在android平台上 ,結果編譯不成功。出現以下問題。
Element uses-feature#android.hardware.camera at AndroidManifest.xml:23:5-84 duplicated with element declared at AndroidManifest.x
ml:17:5-60
E:\xxxx\xxx\xxx\app\platforms\android\AndroidManifest.xml Error:
Validation failed, exiting
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
多次移除安卓平台重新編譯依舊這個問題。
編譯后打開androidMainfest.xml文件在構建后有以下內容
<uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" /> <uses-feature android:name="android.hardware.camera.flash" android:required="false" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" />
平台信息:

問題原因:
原因是我已經安裝了一個插件也是跟cordova-plugin-cszbar功能相同
解決方案:
1.最簡單的方法是移除我之前安裝的那個插件。
2.假如出現這種情況,兩個插件都想同時存在。因為這兩個插件他們都有相同的uses-feature.所以編譯后會將引用插件的重復的權限條目添加到了androidMainfest.xml,
添加好androidp平台后,打開AndroidManifest.xml文件,可以看類似於:<uses-permission android:name="android.permission.CAMERA" /> 刪除,重新構建,結果沒有報錯了。
