Ionic framework 同时使用条形码扫描仪和qrscanner时出现Android构建错误

Ionic framework 同时使用条形码扫描仪和qrscanner时出现Android构建错误,ionic-framework,ionic3,ionic-native,Ionic Framework,Ionic3,Ionic Native,当我在项目中同时使用phonegap插件barcodescanner插件和cordova插件qrscanner插件时,它不会为android平台编译。它输出的错误是清单中的重复权限元素。经过检查,我发现情况确实如此。但是,手动校正不起作用,因为它将自动重新生成 我进一步记录了复制场景。这很简单。也许有人有办法解决这个问题?或者你认为这是一个错误?但在这种情况下,我应该在哪里提出问题 使用版本: 离子型:3.20.0 科尔多瓦:8.0.0 复制步骤: 启动一个新项目爱奥尼亚启动许可问题blank(

当我在项目中同时使用phonegap插件barcodescanner插件和cordova插件qrscanner插件时,它不会为android平台编译。它输出的错误是清单中的重复权限元素。经过检查,我发现情况确实如此。但是,手动校正不起作用,因为它将自动重新生成

我进一步记录了复制场景。这很简单。也许有人有办法解决这个问题?或者你认为这是一个错误?但在这种情况下,我应该在哪里提出问题

使用版本: 离子型:3.20.0 科尔多瓦:8.0.0

复制步骤:

  • 启动一个新项目
    爱奥尼亚启动许可问题blank
    (当它询问是否应与iOS和Android平台集成时,说是,当它要求安装ProSDK时,说否
  • 更改到项目文件夹:
    cd permissionissue
  • 构建它:
    ionic cordova构建——发布android
    ->仍然一切正常
  • 安装第一个插件:
    ionic cordova plugin add phonegap plugin barcodescanner
  • 构建它:
    ionic cordova构建——发布android
    ->仍然一切正常
  • 安装第二个插件:
    ionic cordova plugin add cordova plugin qrscanner
  • 尝试构建它:
    ionic cordova build——发布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.
    
    生成的清单如下所示:

        <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" />
    
    
    

    正如您所看到的,相机一次是自己请求的,另一次是required false。

    我在使用cordova插件相机预览和cordova插件qrscanner时遇到了类似的问题

    帮助我的是: 1.转到plugins/cordova plugin qrchanner/plugin.xml

  • 删除中的条目
  • 
    ... 
    

  • 爱奥尼亚cordova平台删除android

  • 跑 爱奥尼亚cordova平台添加android

  • 这就是我的
    部分的样子,来自
    cordova plugin qrscanner的
    plugin.xml

    <platform name="android">
        <config-file target="res/xml/config.xml" parent="/*">
          <feature name="QRScanner">
            <param name="android-package" value="com.bitpay.cordova.qrscanner.QRScanner"/>
          </feature>
        </config-file>
        <config-file target="AndroidManifest.xml" parent="/*">
          <!-- <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" /> -->
        </config-file>
        <source-file src="src/android/QRScanner.java" target-dir="src/com/bitpay/cordova/qrscanner"/>
        <framework src="src/android/qrscanner.gradle" custom="true" type="gradleReference"/>
      </platform>
    
    
    

    为我工作,希望对你也有帮助。

    我在使用cordova插件相机预览和cordova插件qrscanner时遇到类似问题

    帮助我的是: 1.转到plugins/cordova plugin qrchanner/plugin.xml

  • 删除中的条目
  • 
    ... 
    

  • 爱奥尼亚cordova平台删除android

  • 跑 爱奥尼亚cordova平台添加android
  • 这就是我的
    部分的样子,来自
    cordova plugin qrscanner的
    plugin.xml

    <platform name="android">
        <config-file target="res/xml/config.xml" parent="/*">
          <feature name="QRScanner">
            <param name="android-package" value="com.bitpay.cordova.qrscanner.QRScanner"/>
          </feature>
        </config-file>
        <config-file target="AndroidManifest.xml" parent="/*">
          <!-- <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" /> -->
        </config-file>
        <source-file src="src/android/QRScanner.java" target-dir="src/com/bitpay/cordova/qrscanner"/>
        <framework src="src/android/qrscanner.gradle" custom="true" type="gradleReference"/>
      </platform>
    
    
    

    为我工作,希望对你也有帮助。

    我尝试了你的建议,删除了以下几行:但现在它无法编译。它给出了以下(以及更多)错误::app:javaPreCompileRelease/../permissionissue/platforms/android/app/src/main/java/com/phonegap/plugins/barcodescanner/barcodescanner.java:179:错误:找不到符号intentScan.putExtra(Intents.Scan.SHOW_FLIP_CAMERA_按钮,obj.optBoolean(SHOW_FLIP_CAMERA_按钮,false))^symbol:variable SHOW\u FLIP\u CAMERA\u按钮位置:class scan如果我理解正确,您删除了整个
    部分,但我只注释掉了此标记中的内容,如下所示:
    我再次尝试,只注释掉了使用权限的部分on和two使用了功能标签。我仍然得到相同的错误。我在答案中添加了来自
    cordova plugin qrscanner
    的整个
    部分。您是否再次遵循了所有步骤?我尝试了您的建议并删除了以下几行:但现在它无法编译。它给出了以下内容(以及更多)错误::app:javaPreCompileRelease/../permissionissue/platforms/android/app/src/main/java/com/phonegap/plugins/barcodescanner/barcodescanner.java:179:错误:找不到符号intentScan.putExtra(Intents.Scan.SHOW_FLIP_CAMERA_按钮,obj.optBoolean(SHOW_FLIP_CAMERA_按钮,false))^symbol:variable SHOW\u FLIP\u CAMERA\u按钮位置:class scan如果我理解正确,您删除了整个
    部分,但我只注释掉了此标记中的内容,如下所示:
    我再次尝试,只注释掉了使用权限的部分on和two使用功能标签。我仍然得到相同的错误。我在答案中添加了来自
    cordova plugin qrscanner
    的整个
    部分。您是否再次遵循了所有步骤?