Build failed "Duplicate entry"


#1

Hey guys,
I was able to build my app for almost 2 months, and suddently since friday it started giving me the following error when i run “ionic cordova run android --device”:

Execution failed for task ‘:transformClassesWithJarMergingForDebug’.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/zxing/aztec/AztecDetectorResult.class

I have been looking for solution, uninstall npm, reinstall everything, even android studio but i keep getting the same error and i really dont know how to fix it.
Can anyone help me please?

ionic info

cli packages: (/home/username/.nvm/versions/node/v6.11.2/lib/node_modules)

    @ionic/cli-utils  : 1.9.2
    ionic (Ionic CLI) : 3.9.2

global packages:

    Cordova CLI : 7.0.1 

local packages:

    @ionic/app-scripts : 1.3.7
    Cordova Platforms  : android 6.2.3
    Ionic Framework    : ionic-angular 3.3.0

System:

    Android SDK Tools : 26.0.2
    Node              : v6.11.2
    npm               : 3.10.10 
    OS                : Linux 4.4

cat package.json 
{
    "name": "app-name",
    "version": "0.0.1",
    "author": "Ionic Framework",
    "homepage": "http://ionicframework.com/",
    "private": true,
    "scripts": {
        "clean": "ionic-app-scripts clean",
        "build": "ionic-app-scripts build",
        "lint": "ionic-app-scripts lint",
        "ionic:build": "ionic-app-scripts build",
        "ionic:serve": "ionic-app-scripts serve"
    },
    "dependencies": {
        "@angular/common": "4.1.2",
        "@angular/compiler": "4.1.2",
        "@angular/compiler-cli": "4.1.2",
        "@angular/core": "4.1.2",
        "@angular/forms": "4.1.2",
        "@angular/http": "4.1.2",
        "@angular/platform-browser": "4.1.2",
        "@angular/platform-browser-dynamic": "4.1.2",
        "@ionic-native/badge": "^4.1.0",
        "@ionic-native/barcode-scanner": "^3.12.1",
        "@ionic-native/camera": "^3.12.1",
        "@ionic-native/core": "^3.10.2",
        "@ionic-native/facebook": "^4.0.0",
        "@ionic-native/geolocation": "^3.13.1",
        "@ionic-native/network": "^3.12.1",
        "@ionic-native/push": "^4.1.0",
        "@ionic-native/splash-screen": "3.10.2",
        "@ionic-native/status-bar": "3.10.2",
        "@ionic/storage": "2.0.1",
        "cordova-android": "^6.2.3",
        "cordova-ios": "^4.4.0",
        "cordova-plugin-badge": "^0.8.1",
        "cordova-plugin-camera": "^2.4.1",
        "cordova-plugin-compat": "^1.1.0",
        "cordova-plugin-console": "^1.0.7",
        "cordova-plugin-device": "^1.1.6",
        "cordova-plugin-facebook4": "~1.9.1",
        "cordova-plugin-geolocation": "^2.4.3",
        "cordova-plugin-ios-camera-permissions": "^1.1.1",
        "cordova-plugin-network-information": "^1.3.3",
        "cordova-plugin-splashscreen": "^4.0.3",
        "cordova-plugin-statusbar": "^2.2.3",
        "cordova-plugin-whitelist": "^1.3.2",
        "gradle": "^1.0.7",
        "ionic-angular": "3.3.0",
        "ionic-plugin-keyboard": "^2.2.1",
        "ionicons": "3.0.0",
        "node-sass": "^4.5.3",
        "phonegap-plugin-barcodescanner": "^6.0.6",
        "phonegap-plugin-push": "^2.0.0",
        "rxjs": "5.1.1",
        "sw-toolbox": "3.6.0",
        "ts-md5": "^1.2.0",
        "zone.js": "0.8.11"
    },
    "devDependencies": {
        "@ionic/app-scripts": "1.3.7",
        "@ionic/cli-plugin-cordova": "1.3.0",
        "@ionic/cli-plugin-ionic-angular": "1.3.0",
        "typescript": "2.3.3"
    },
    "description": "An Ionic project",
    "cordova": {
        "plugins": {
            "cordova-plugin-console": {},
            "cordova-plugin-device": {},
            "cordova-plugin-splashscreen": {},
            "cordova-plugin-statusbar": {},
            "cordova-plugin-whitelist": {},
            "ionic-plugin-keyboard": {},
            "phonegap-plugin-barcodescanner": {},
            "cordova-plugin-camera": {},
            "cordova-plugin-network-information": {},
            "cordova-plugin-ios-camera-permissions": {},
            "cordova-plugin-geolocation": {},
            "cordova-plugin-facebook4": {
                "APP_ID": "app-id",
                "APP_NAME": "app-name"
            },
            "phonegap-plugin-push": {
                "SENDER_ID": "sender-id-number"
            },
            "cordova-plugin-badge": {}
        },
        "platforms": [
            "android"
        ]
    }


cat config.xml 
<?xml version='1.0' encoding='utf-8'?>
<widget id="my-id.com" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>app-name</name>
    <description>An awesome Ionic/Cordova app.</description>
    <author email="my-email.com" href="http://ionicframework.com/">Ionic Framework Team</author>
    <content src="index.html" />
    <access origin="*" />
    <allow-navigation href="http://ionic.local/*" />
    <allow-navigation href="http://192.168.0.13:8100" />
    <allow-navigation href="http://192.168.1.113:8100" />
    <allow-navigation href="http://192.168.1.113:8101" />
    <allow-navigation href="http://192.168.1.112:8100" />
    <allow-navigation href="http://192.168.1.112:8101" />
    <allow-navigation href="http://192.168.1.120:8100" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <preference name="webviewbounce" value="false" />
    <preference name="UIWebViewBounce" value="false" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="android-minSdkVersion" value="16" />
    <preference name="BackupWebStorage" value="none" />
    <preference name="SplashMaintainAspectRatio" value="true" />
    <preference name="FadeSplashScreenDuration" value="300" />
    <preference name="SplashShowOnlyFirstTime" value="false" />
    <preference name="SplashScreen" value="screen" />
    <preference name="SplashScreenDelay" value="3000" />
    <preference name="Orientation" value="portrait" />
    <platform name="android">
        <allow-intent href="market:*" />
        <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
        <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
        <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
        <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
        <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
        <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
        <splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
        <splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
        <splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
        <splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
        <splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
        <splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
        <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
        <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
        <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
        <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
        <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
        <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
        <icon height="57" src="resources/ios/icon/icon.png" width="57" />
        <icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
        <icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
        <icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
        <icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" />
        <icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
        <icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
        <icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
        <icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
        <icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
        <icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
        <icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
        <icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
        <icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
        <icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" />
        <icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
        <icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
        <icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
        <splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
        <splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
        <splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
        <splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
        <splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
        <splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
        <splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
        <splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
        <splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
        <splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
        <splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
        <splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
    </platform>
    <engine name="android" spec="^6.2.3" />
    <plugin name="cordova-plugin-badge" spec="^0.8.1" />
    <plugin name="cordova-plugin-camera" spec="^2.4.1" />
    <plugin name="cordova-plugin-console" spec="^1.0.7" />
    <plugin name="cordova-plugin-device" spec="^1.1.6" />
    <plugin name="cordova-plugin-facebook4" spec="~1.9.1">
        <variable name="APP_ID" value="app-id" />
        <variable name="APP_NAME" value="app-name" />
    </plugin>
    <plugin name="cordova-plugin-geolocation" spec="^2.4.3" />
    <plugin name="cordova-plugin-ios-camera-permissions" spec="^1.1.1" />
    <plugin name="cordova-plugin-network-information" spec="^1.3.3" />
    <plugin name="cordova-plugin-splashscreen" spec="^4.0.3" />
    <plugin name="cordova-plugin-statusbar" spec="^2.2.3" />
    <plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
    <plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
    <plugin name="phonegap-plugin-barcodescanner" spec="^6.0.6" />
    <plugin name="phonegap-plugin-push" spec="^2.0.0">
        <variable name="SENDER_ID" value="my-number" />
    </plugin>
</widget>

#2

Update your Ionic framework and app-scripts. Your build script is months old right now.


#3

Make sure you don’t have multiple barcode scanning plugins installed. Perhaps removing and readding the android platform might be worthwhile.


#4

@rapropos, that is exactly what i have been doing, i removed node_modules and platform and install everything again, but still running into the same problem. Any guess?


#5

@AaronSterling, ok i can do that. Can you tell me the right way to update ionic project?
But it’sreally starnge cause everything was running so far.


#6

Install nvm or nvm-for-windows. Use that to install Node. Once you have a clean Node, npm install -g ionic cordova. Once you have that, npm i for your package.json.


#7

I am using nvm already, but i am going to uninstall even nvm and do what you said


#8

You shouldn’t need to uninstall nvm. That sounds like too much. npm cache clean --force if you really want to.


#9

@AaronSterling, i did everything you said, but i still have the same problem, any other other guidance will be welcome.

ionic info

cli packages: (/home/username/.nvm/versions/node/v6.11.2/lib/node_modules)

    @ionic/cli-utils  : 1.9.2
    ionic (Ionic CLI) : 3.9.2

global packages:

    Cordova CLI : 7.0.1 

local packages:

    @ionic/app-scripts : 1.3.7
    Cordova Platforms  : android 6.2.3
    Ionic Framework    : ionic-angular 3.3.0

System:

    Android SDK Tools : 26.0.2
    Node              : v6.11.2
    npm               : 3.10.10 
    OS                : Linux 4.4

{
    "name": "app-name",
    "version": "0.0.1",
    "author": "Ionic Framework",
    "homepage": "http://ionicframework.com/",
    "private": true,
    "scripts": {
        "clean": "ionic-app-scripts clean",
        "build": "ionic-app-scripts build",
        "lint": "ionic-app-scripts lint",
        "ionic:build": "ionic-app-scripts build",
        "ionic:serve": "ionic-app-scripts serve"
    },
    "dependencies": {
        "@angular/common": "4.1.2",
        "@angular/compiler": "4.1.2",
        "@angular/compiler-cli": "4.1.2",
        "@angular/core": "4.1.2",
        "@angular/forms": "4.1.2",
        "@angular/http": "4.1.2",
        "@angular/platform-browser": "4.1.2",
        "@angular/platform-browser-dynamic": "4.1.2",
        "@ionic-native/badge": "^4.1.0",
        "@ionic-native/barcode-scanner": "^3.12.1",
        "@ionic-native/camera": "^3.12.1",
        "@ionic-native/core": "^3.10.2",
        "@ionic-native/facebook": "^4.0.0",
        "@ionic-native/geolocation": "^3.13.1",
        "@ionic-native/network": "^3.12.1",
        "@ionic-native/push": "^4.1.0",
        "@ionic-native/splash-screen": "3.10.2",
        "@ionic-native/status-bar": "3.10.2",
        "@ionic/storage": "2.0.1",
        "cordova-android": "^6.2.3",
        "cordova-ios": "^4.4.0",
        "cordova-plugin-badge": "^0.8.1",
        "cordova-plugin-camera": "^2.4.1",
        "cordova-plugin-compat": "^1.1.0",
        "cordova-plugin-console": "^1.0.7",
        "cordova-plugin-device": "^1.1.6",
        "cordova-plugin-facebook4": "~1.9.1",
        "cordova-plugin-geolocation": "^2.4.3",
        "cordova-plugin-ios-camera-permissions": "^1.1.1",
        "cordova-plugin-network-information": "^1.3.3",
        "cordova-plugin-splashscreen": "^4.0.3",
        "cordova-plugin-statusbar": "^2.2.3",
        "cordova-plugin-whitelist": "^1.3.2",
        "gradle": "^1.0.7",
        "ionic-angular": "3.3.0",
        "ionic-plugin-keyboard": "^2.2.1",
        "ionicons": "3.0.0",
        "node-sass": "^4.5.3",
        "phonegap-plugin-barcodescanner": "^6.0.6",
        "phonegap-plugin-push": "^2.0.0",
        "rxjs": "5.1.1",
        "sw-toolbox": "3.6.0",
        "ts-md5": "^1.2.0",
        "zone.js": "0.8.11"
    },
    "devDependencies": {
        "@ionic/app-scripts": "1.3.7",
        "typescript": "2.3.3"
    },
    "description": "An Ionic project",
    "cordova": {
        "plugins": {
            "cordova-plugin-console": {},
            "cordova-plugin-device": {},
            "cordova-plugin-splashscreen": {},
            "cordova-plugin-statusbar": {},
            "cordova-plugin-whitelist": {},
            "ionic-plugin-keyboard": {},
            "phonegap-plugin-barcodescanner": {},
            "cordova-plugin-camera": {},
            "cordova-plugin-network-information": {},
            "cordova-plugin-ios-camera-permissions": {},
            "cordova-plugin-geolocation": {},
            "cordova-plugin-facebook4": {
                "APP_ID": "app-name",
                "APP_NAME": "app-name"
            },
            "phonegap-plugin-push": {
                "SENDER_ID": "id-number"
            },
            "cordova-plugin-badge": {}
        },
        "platforms": [
            "android"
        ]
    }

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.myapp version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>app-name</name>
    <description>An awesome Ionic/Cordova app.</description>
    <author email="me@.com" href="http://ionicframework.com/">Ionic Framework Team</author>
    <content src="index.html" />
    <access origin="*" />
    <allow-navigation href="http://ionic.local/*" />
    <allow-navigation href="http://192.168.0.13:8100" />
    <allow-navigation href="http://192.168.1.113:8100" />
    <allow-navigation href="http://192.168.1.113:8101" />
    <allow-navigation href="http://192.168.1.112:8100" />
    <allow-navigation href="http://192.168.1.112:8101" />
    <allow-navigation href="http://192.168.1.120:8100" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <preference name="webviewbounce" value="false" />
    <preference name="UIWebViewBounce" value="false" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="android-minSdkVersion" value="16" />
    <preference name="BackupWebStorage" value="none" />
    <preference name="SplashMaintainAspectRatio" value="true" />
    <preference name="FadeSplashScreenDuration" value="300" />
    <preference name="SplashShowOnlyFirstTime" value="false" />
    <preference name="SplashScreen" value="screen" />
    <preference name="SplashScreenDelay" value="3000" />
    <preference name="Orientation" value="portrait" />
    <platform name="android">
        <allow-intent href="market:*" />
        <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
        <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
        <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
        <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
        <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
        <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
        <splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
        <splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
        <splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
        <splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
        <splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
        <splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
        <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
        <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
        <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
        <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
        <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
        <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
    </platform>
    <engine name="android" spec="^6.2.3" />
    <plugin name="cordova-plugin-badge" spec="^0.8.1" />
    <plugin name="cordova-plugin-camera" spec="^2.4.1" />
    <plugin name="cordova-plugin-console" spec="^1.0.7" />
    <plugin name="cordova-plugin-device" spec="^1.1.6" />
    <plugin name="cordova-plugin-facebook4" spec="~1.9.1">
        <variable name="APP_ID" value="app-id" />
        <variable name="APP_NAME" value="app-name" />
    </plugin>
    <plugin name="cordova-plugin-geolocation" spec="^2.4.3" />
    <plugin name="cordova-plugin-ios-camera-permissions" spec="^1.1.1" />
    <plugin name="cordova-plugin-network-information" spec="^1.3.3" />
    <plugin name="cordova-plugin-splashscreen" spec="^4.0.3" />
    <plugin name="cordova-plugin-statusbar" spec="^2.2.3" />
    <plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
    <plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
    <plugin name="phonegap-plugin-barcodescanner" spec="^6.0.6" />
    <plugin name="phonegap-plugin-push" spec="^2.0.0">
        <variable name="SENDER_ID" value="sender-id" />
    </plugin>
</widget>




#10

What’s your package.json? Edit: Oh, I didn’t see it in the scroll, never mind.

Edit 2: Put a carat ( this symbol ^ ) in front of your app-scripts, rxjs, and ionic-angular. So for example, ionic-angular should look like “^3.3.0” Then run npm i.

Edit 3: It looks as though, somewhere along the way, you saved ionic as save-exact. Unless you’re in a special situation, like about to publish and you don’t want to introduce a breaking change at the last minute, using save-exact isn’t a good idea.


#11

Ok, So should i put “^” all version in package.json or only in front of rxjs?

And i don’t know if that may help but i am using in my build.gradle at the very end of the file, this code:

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.0'
            }
        }
    }
}

edit1: I put “^” in front rxjs and some ionic package that i found in package.json. but didn’t help

/


#12

I’ve never built with Gradle so I don’t know about that. But in general, you want the most recent version of every library, so putting the carat is good. Except: DO NOT do that for typescript or for the @angular/x libraries. Let ionic decide what version of typescript and Angular to install when you update ionic. Typescript is especially important here: newer versions of typescript cause build errors, because ionic code is not compliant with it yet.


#13

Thank you very much @AaronSterling for helping me. I did not touch to typescript neither @angular/x. Is there other information i could provide to help?


#14

Can anyone help with my issue please? Any help you will be welcome


#15

I eventually find the solution to my problem. In the project i am using those cordova plugins: phonegap-plugin-barcodescanner, cordova-plugin-facebook4, phonegap-plugin-push.

I Thought i would solve my problem by remove the push plugin cause it was the last one i added, but the problem that didn’t fix my app, just showed up a new error, so added again the push plugin and downgrade facebook from 1.9.1 to 1.7.4 and that fixed the problem.

Here they talk about conflict cause buy plugins, you should read it:

To be sincere i hadn’t been able to track down the issue and figure out where and when the problem occur. So if someone can help it will be very nice.

Thank you very much everybody for the help :slight_smile:


#16

I meet the same problem and i also have the facebook4 plugin@1.9.1.Then i downgrade facebook from 1.91 to 1.7.4 .But the problem still occur. It’s the kernal of the problem?