title: Ionic project running in android am facing this issues:com.android.builder.dexing.DexArchiveMergerException:
body: <p>I have created project,in that ionic folder will be generated from siberian tool.while running the android folder in android studio,am facing this issue:Anyone help me please</p>
  
  <p>Error:Execution failed for </p>
  
  <blockquote>
    <p>task:transformDexArchiveWithExternalLibsDexMergerForDebug'. 
    java.lang.RuntimeException:
    com.android.builder.dexing.DexArchiveMergerException: Unable to merge
    dex</p>
  </blockquote>
  
  <p>Please kindly help me,even i given multidex enabled true also but still same problem,i clean and rebuild the project also.this is my gradle file`
  apply plugin: 'com.android.application'</p>
  
  <pre><code>buildscript {
      repositories {
          mavenCentral()
          jcenter()
      }
      dependencies {
          classpath 'com.android.tools.build:gradle:3.0.1'    
      }
  }
  allprojects {
      repositories {
          // Required for 'com.firebaseui:firebase-ui:1.1.1'
          maven {
              url 'https://maven.fabric.io/public'
          }
          mavenCentral();
          jcenter()
          google()
      }
  }    
  task wrapper(type: Wrapper) {
      gradleVersion = '2.14.1'
  }
  http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html
  ext {
      apply from: 'CordovaLib/cordova.gradle'
  
      if (!project.hasProperty('cdvCompileSdkVersion')) {
          cdvCompileSdkVersion = null;
      }        
      if (!project.hasProperty('cdvBuildToolsVersion')) {
          cdvBuildToolsVersion = null;
      }        
      if (!project.hasProperty('cdvVersionCode')) {
          cdvVersionCode = null
      }        
      if (!project.hasProperty('cdvMinSdkVersion')) {
          cdvMinSdkVersion = null
      }        
      if (!project.hasProperty('cdvBuildMultipleApks')) {
          cdvBuildMultipleApks = null
      }
      // .properties files to use for release signing.
      if (!project.hasProperty('cdvReleaseSigningPropertiesFile')) {
          cdvReleaseSigningPropertiesFile = null
      }
      // .properties files to use for debug signing.
      if (!project.hasProperty('cdvDebugSigningPropertiesFile')) {
          cdvDebugSigningPropertiesFile = null
      }
      // Set by build.js script.
      if (!project.hasProperty('cdvBuildArch')) {
          cdvBuildArch = null
      }
  
      cdvPluginPostBuildExtras = []
  }
  
  apply from: "cordova-plugin-admobpro/base-build.gradle"
  apply from: "cordova-hot-code-push-plugin/base-chcp.gradle"
  apply from: "phonegap-plugin-push/base-push.gradle"
  apply from: "phonegap-plugin-barcodescanner/base-barcodescanner.gradle"
  apply from: "cordova-plugin-geofence/base-build.gradle"
  // PLUGIN GRADLE EXTENSIONS END
  
  def hasBuildExtras = file('build-extras.gradle').exists()
  if (hasBuildExtras) {
      apply from: 'build-extras.gradle'
  }
  
  // Set property defaults after extension .gradle files.
  if (ext.cdvCompileSdkVersion == null) {
      ext.cdvCompileSdkVersion = privateHelpers.getProjectTarget()
  }
  if (ext.cdvBuildToolsVersion == null) {
      ext.cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools()
  }
  if (ext.cdvDebugSigningPropertiesFile == null &amp;&amp; file('debug-signing.properties').exists()) {
      ext.cdvDebugSigningPropertiesFile = 'debug-signing.properties'
  }
  if (ext.cdvReleaseSigningPropertiesFile == null &amp;&amp; file('release-signing.properties').exists()) {
      ext.cdvReleaseSigningPropertiesFile = 'release-signing.properties'
  }
  
  // Cast to appropriate types.
  ext.cdvBuildMultipleApks = cdvBuildMultipleApks == null ? false : cdvBuildMultipleApks.toBoolean();
  ext.cdvMinSdkVersion = cdvMinSdkVersion == null ? null : Integer.parseInt('' + cdvMinSdkVersion)
  ext.cdvVersionCode = cdvVersionCode == null ? null : Integer.parseInt('' + cdvVersionCode)
  
  def computeBuildTargetName(debugBuild) {
      def ret = 'assemble'
      if (cdvBuildMultipleApks &amp;&amp; cdvBuildArch) {
          def arch = cdvBuildArch == 'arm' ? 'armv7' : cdvBuildArch
          ret += '' + arch.toUpperCase().charAt(0) + arch.substring(1);
      }
      return ret + (debugBuild ? 'Debug' : 'Release')
  }
  
  // Make cdvBuild a task that depends on the debug/arch-sepecific task.
  task cdvBuildDebug
  cdvBuildDebug.dependsOn {
      return computeBuildTargetName(true)
  }
  
  task cdvBuildRelease
  cdvBuildRelease.dependsOn {
      return computeBuildTargetName(false)
  }
  
  task cdvPrintProps &lt;&lt; {
      println('cdvCompileSdkVersion=' + cdvCompileSdkVersion)
      println('cdvBuildToolsVersion=' + cdvBuildToolsVersion)
      println('cdvVersionCode=' + cdvVersionCode)
      println('cdvMinSdkVersion=' + cdvMinSdkVersion)
      println('cdvBuildMultipleApks=' + cdvBuildMultipleApks)
      println('cdvReleaseSigningPropertiesFile=' + cdvReleaseSigningPropertiesFile)
      println('cdvDebugSigningPropertiesFile=' + cdvDebugSigningPropertiesFile)
      println('cdvBuildArch=' + cdvBuildArch)
      println('computedVersionCode=' + android.defaultConfig.versionCode)
      android.productFlavors.each { flavor -&gt;
          println('computed' + flavor.name.capitalize() + 'VersionCode=' + flavor.versionCode)
      }
  }
  
  android {
      lintOptions {
          checkReleaseBuilds false
          abortOnError false
      }
      lintOptions {
          checkReleaseBuilds false
          abortOnError false
      }
      dexOptions {
          javaMaxHeapSize "2048m"
      }
      sourceSets {
          main {
              manifest.srcFile 'AndroidManifest.xml'
              java.srcDirs = ['src']
              resources.srcDirs = ['src']
              aidl.srcDirs = ['src']
              renderscript.srcDirs = ['src']
              res.srcDirs = ['res']
              assets.srcDirs = ['assets']
              jniLibs.srcDirs = ['libs']
          }
      }
      defaultConfig {
          applicationId privateHelpers.extractStringFromManifest("package")
          multiDexEnabled true
          if (cdvMinSdkVersion != null) {
              minSdkVersion cdvMinSdkVersion
          }
          minSdkVersion 16
          targetSdkVersion 27
      }
      compileSdkVersion 27
      buildToolsVersion '27.0.2'
      if (Boolean.valueOf(cdvBuildMultipleApks)) {
          productFlavors {
              armv7 {
                  versionCode defaultConfig.versionCode * 10 + 2
                  ndk {
                      abiFilters "armeabi-v7a", ""
                  }
              }
              x86 {
                  versionCode defaultConfig.versionCode * 10 + 4
                  ndk {
                      abiFilters "x86", ""
                  }
              }
              all {
                  ndk {
                      abiFilters "all", ""
                  }
              }
          }
      }
      /*
  
      ELSE NOTHING! DON'T MESS WITH THE VERSION CODE IF YOU DON'T HAVE TO!
  
      else if (!cdvVersionCode) {
        def minSdkVersion = cdvMinSdkVersion ?: privateHelpers.extractIntFromManifest("minSdkVersion")
        // Vary versionCode by the two most common API levels:
        // 14 is ICS, which is the lowest API level for many apps.
        // 20 is Lollipop, which is the lowest API level for the updatable system webview.
        if (minSdkVersion &gt;= 20) {
          defaultConfig.versionCode += 9
        } else if (minSdkVersion &gt;= 14) {
          defaultConfig.versionCode += 8
        }
      }
      */
      compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_7
          targetCompatibility JavaVersion.VERSION_1_7
      }
      if (cdvReleaseSigningPropertiesFile) {
          signingConfigs {
              release {
                  // These must be set or Gradle will complain (even if they are overridden).
                  keyAlias = ""
                  keyPassword = "__unset"
                  // And these must be set to non-empty in order to have the signing step added to the task graph.
                  storeFile = null
                  storePassword = "__unset"
              }
          }
          buildTypes {
              release {
                  signingConfig signingConfigs.release
              }
          }
          addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release)
      }
      if (cdvDebugSigningPropertiesFile) {
          addSigningProps(cdvDebugSigningPropertiesFile, signingConfigs.debug)
      }
      productFlavors {
      }
  }
  
  dependencies {
      compile fileTree(include: '*.jar', dir: 'libs')
      // SUB-PROJECT DEPENDENCIES START
      // debugCompile(project(path: "CordovaLib", configuration: "debug"))
      // releaseCompile(project(path: "CordovaLib", configuration: "release"))
      implementation project(path: ':CordovaLib')
      compile 'com.google.android.gms:play-services-gcm:11.0.2'
      compile 'me.leolin:ShortcutBadger:1.1.14@aar'
      compile 'com.firebaseui:firebase-ui:1.1.1'
      compile 'com.google.firebase:firebase-auth:10.0.0'
      compile 'com.google.firebase:firebase-database:10.0.0'
      compile 'com.firebaseui:firebase-ui-database:1.0.1'
      compile 'com.google.firebase:firebase-storage:10.0.0'
      // SUB-PROJECT DEPENDENCIES END
      implementation 'com.android.support:appcompat-v7:27.0.2'
      implementation 'com.android.support:support-v13:27.0.2'
      implementation 'com.android.support:support-v4:27.0.2'
      implementation 'com.android.support:recyclerview-v7:27.0.2'
      implementation 'com.google.android.gms:play-services:11.8.0'
      implementation 'com.google.android.gms:play-services-ads:11.8.0'
      implementation 'com.google.android.gms:play-services-maps:11.8.0'
  }
  
  def promptForReleaseKeyPassword() {
      if (!cdvReleaseSigningPropertiesFile) {
          return;
      }
      if ('__unset'.equals(android.signingConfigs.release.storePassword)) {
          android.signingConfigs.release.storePassword = privateHelpers.promptForPassword('Enter key store password: ')
      }
      if ('__unset'.equals(android.signingConfigs.release.keyPassword)) {
          android.signingConfigs.release.keyPassword = privateHelpers.promptForPassword('Enter key password: ');
      }
  }
  
  gradle.taskGraph.whenReady { taskGraph -&gt;
      taskGraph.getAllTasks().each() { task -&gt;
          if (task.name == 'validateReleaseSigning' || task.name == 'validateSigningRelease') {
              promptForReleaseKeyPassword()
          }
      }
  }
  
  def addSigningProps(propsFilePath, signingConfig) {
      def propsFile = file(propsFilePath)
      def props = new Properties()
      propsFile.withReader { reader -&gt;
          props.load(reader)
      }
  
      def storeFile = new File(props.get('key.store') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'storeFile'))
      if (!storeFile.isAbsolute()) {
          storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile())
      }
      if (!storeFile.exists()) {
          throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath())
      }
      signingConfig.keyAlias = props.get('key.alias') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'keyAlias')
      signingConfig.keyPassword = props.get('keyPassword', props.get('key.alias.password', signingConfig.keyPassword))
      signingConfig.storeFile = storeFile
      signingConfig.storePassword = props.get('storePassword', props.get('key.store.password', signingConfig.storePassword))
      def storeType = props.get('storeType', props.get('key.store.type', ''))
      if (!storeType) {
          def filename = storeFile.getName().toLowerCase();
          if (filename.endsWith('.p12') || filename.endsWith('.pfx')) {
              storeType = 'pkcs12'
          } else {
              storeType = signingConfig.storeType // "jks"
          }
      }
      signingConfig.storeType = storeType
  }
  
  for (def func : cdvPluginPostBuildExtras) {
      func()
  }
  
  // This can be defined within build-extras.gradle as:
  //     ext.postBuildExtras = { ... code here ... }
  if (hasProperty('postBuildExtras')) {
      postBuildExtras()
  }
  `
  </code></pre>
  
  <p>Please help me anyone</p>