【问题标题】:Can you help me with this Build Failed when running ionic cordova build command运行 ionic cordova build 命令时,你能帮我解决这个构建失败的问题吗
【发布时间】:2020-01-31 18:03:38
【问题描述】:

基本上我正在使用此命令使用 QR 码扫描仪 npm install @ionic-native/qr-scanner 离子cordova插件添加cordova-plugin-qrscanner

当我使用这个插件后,当我去构建然后得到这个错误 并在清单文件中重现这样的错误 ionic cordova build android 之前的清单文件看起来像

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="io.ionic.starter" xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true" android:usesCleartextTraffic="true">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:clearTaskOnLaunch="true" android:configChanges="orientation|keyboardHidden|screenSize" android:exported="false" android:name="com.google.zxing.client.android.CaptureActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="stateAlwaysHidden" />
        <activity android:label="Share" android:name="com.google.zxing.client.android.encode.EncodeActivity" />
    </application>
    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

运行构建命令后是这样的

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="io.ionic.starter" xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true" android:usesCleartextTraffic="true">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:clearTaskOnLaunch="true" android:configChanges="orientation|keyboardHidden|screenSize" android:exported="false" android:name="com.google.zxing.client.android.CaptureActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="stateAlwaysHidden" />
        <activity android:label="Share" android:name="com.google.zxing.client.android.encode.EncodeActivity" />
    </application>
    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.CAMERA" />
    <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" />
</manifest>

错误是这样的

BUILD FAILED in 4s
22 actionable tasks: 1 executed, 21 up-to-date
D:\New CouponCode\platforms\android\gradlew: Command failed with exit code 1 Error output:
D:\New CouponCode\platforms\android\app\src\main\AndroidManifest.xml:20:5-90 Error:
        Element uses-permission#android.permission.CAMERA at AndroidManifest.xml:20:5-90 duplicated with element declared at AndroidManifest.xml:18:5-65
D:\New CouponCode\platforms\android\app\src\main\AndroidManifest.xml:21:5-85 Error:
        Element uses-feature#android.hardware.camera at AndroidManifest.xml:21:5-85 duplicated with element declared at AndroidManifest.xml:19:5-84
D:\New CouponCode\platforms\android\app\src\main\AndroidManifest.xml Error:
        Validation failed, exiting

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugManifest'.
> 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. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

【问题讨论】:

标签: cordova ionic-framework qr-code


【解决方案1】:

如果您阅读错误代码,您可以看到 AndroidManifest.xml 中有重复的元素

AndroidManifest.xml:20:5-90 中的元素 uses-permission#android.permission.CAMERA 与 AndroidManifest.xml:18:5-65 中声明的元素重复

AndroidManifest.xml:21:5-85 中的元素 uses-feature#android.hardware.camera 与 AndroidManifest.xml:19:5-84 中声明的元素重复

CAMERA 插件请仅选择uses-permissionuses-feature 之一。

<uses-permission android:name="android.permission.CAMERA" />
<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" />

【讨论】:

  • 情况并非如此,基本上我想说的是,我已经在构建之前删除了这四行,在运行构建命令之后它会自动添加这四行,我也尝试过其他场景我刚刚又写了一条相机许可行,结果一如既往。
猜你喜欢
  • 2011-01-24
  • 2021-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
  • 1970-01-01
  • 2021-02-27
相关资源
最近更新 更多