当我在项目中同时使用phonegap-plugin-barcodescanner插件和cordova-plugin-qrscanner插件时,它不会为android平台编译。它输出的错误是清单中的重复权限元素。检查后,我发现情况确实如此。但手动校正不起作用,因为它会自动重新生成。
我进一步记录了再现情景。这很简单。也许有人知道如何解决这个问题?或者你认为这是一个错误?但是在这种情况下我应该在哪里打开这个问题?
二手版本: 离子:3.20.0 cordova:8.0.0
重现的步骤:
ionic start permissionissue blank
(当它询问是否应该与iOS和Android平台集成时说是,当它要求安装ProSDK时说不cd permissionissue
ionic cordova build --release android
- >一切都很好ionic cordova plugin add phonegap-plugin-barcodescanner
ionic cordova build --release android
- >一切都很好ionic cordova plugin add cordova-plugin-qrscanner
ionic cordova build --release android
- >现在它打破了它将显示以下错误:
> Manifest merger failed with multiple errors, see logs
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or
--debug
option to get more log output.
* Get more help at https://help.gradle.org
BUILD FAILED in 4s
23 actionable tasks: 3 executed, 20 up-to-date
(node:12659) UnhandledPromiseRejectionWarning: Error: .../permissionissue/platforms/android/gradlew: Command failed with exit code 1 Error output:
.../permissionissue/platforms/android/app/src/main/AndroidManifest.xml:19:5-90 Error:
Element uses-permission#android.permission.CAMERA at AndroidManifest.xml:19:5-90 duplicated with element declared at AndroidManifest.xml:16:5-65
.../permissionissue/platforms/android/app/src/main/AndroidManifest.xml:20:5-85 Error:
Element uses-feature#android.hardware.camera at AndroidManifest.xml:20:5-85 duplicated with element declared at AndroidManifest.xml:18:5-84
.../permissionissue/platforms/android/app/src/main/AndroidManifest.xml Error:
Validation failed, exiting
FAILURE: Build failed with an exception.
生成的Manifest看起来像这样:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-permission android:name="android.permission.CAMERA" android:required="false" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
正如您所看到的那样,CAMERA曾经被自己一次请求,一次被要求假。
答案 0 :(得分:0)
我使用cordova-plugin-camera-preview和cordova-plugin-qrscanner遇到了类似的问题
帮助我的是: 1.转到plugins / cordova-plugin-qrscanner / plugin.xml
<config-file target="AndroidManifest.xml" parent="/*">
...
</config-file>
运行
ionic cordova platform remove android
运行
ionic cordova platform add android
这是<platform>
的{{1}}中我的plugin.xml
部分的样子
cordova-plugin-qrscanner
为我工作,希望它能对您有所帮助。