title: How to solve Execution failed for task transformClassesWithDexForArmv7Debug on Cordova
body: <p>When i try build a APK width Cordova, this show me a error exception.
  To create my APK i use
  <code>cordova build android</code>
  Before install Windows 10, i use the same configuration, but work well.</p>
  
  <p><strong>My steps</strong></p>
  
  <ul>
  <li>Create project with <code>cordova create Example com.example.app Example</code></li>
  <li>Add platform support with <code>cordova platform add android</code></li>
  <li>Add plugins support with <code>cordova plugin add XYZ</code></li>
  <li>prepare cordova project with <code>cordova prepare android</code></li>
  <li>build cordova APK with <code>cordova build android</code> (<strong><em>i don't use --release 'cos i need debug APK</em></strong>)</li>
  </ul>
  
  <p><strong>My configuration:</strong></p>
  
  <ul>
  <li>Windows 10 x64 width 16GB Ram and AMD 2.4 Ghz * 8 Core( <strong><em>I don't use Emulator 'cos is too slow in AMD</em></strong>)</li>
  <li>Cordova <strong>6.1.1</strong></li>
  <li>Java <strong>1.8.0_91</strong></li>
  <li>Java(TM) SE Runtime Environment (build 1.8.0_91-b14)</li>
  <li>Android Studio <strong>2.1</strong> (Build AI-143.2790544)</li>
  <li>Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)</li>
  <li>PATH: <strong>ANDROID_HOME</strong>=C:\Users\Olaf\AppData\Local\Android\sdk</li>
  <li>PATH: <strong>JAVA_HOME</strong>=C:\Program Files\java\jdk1.8.0_91</li>
  </ul>
  
  <p><strong>build.gradle file</strong></p>
  
  <pre><code>// GENERATED FILE! DO NOT EDIT!
  
  apply plugin: 'android'
  
  buildscript {
      repositories {
          mavenCentral()
      }
  
      // Switch the Android Gradle plugin version requirement depending on the
      // installed version of Gradle. This dependency is documented at
      // http://tools.android.com/tech-docs/new-build-system/version-compatibility
      // and https://issues.apache.org/jira/browse/CB-8143
      dependencies {
          classpath 'com.android.tools.build:gradle:1.5.0'
      }
     }
  
  // Allow plugins to declare Maven dependencies via build-extras.gradle.
  repositories {
      mavenCentral()
  }
  
  task wrapper(type: Wrapper) {
      gradleVersion = '2.8'
  }
  
  // Configuration properties. Set these via environment variables, build-extras.gradle, or gradle.properties.
  // Refer to: http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html
  ext {
      apply from: 'CordovaLib/cordova.gradle'
      // The value for android.compileSdkVersion.
      if (!project.hasProperty('cdvCompileSdkVersion')) {
          cdvCompileSdkVersion = null;
      }
      // The value for android.buildToolsVersion.
      if (!project.hasProperty('cdvBuildToolsVersion')) {
          cdvBuildToolsVersion = null;
      }
      // Sets the versionCode to the given value.
      if (!project.hasProperty('cdvVersionCode')) {
          cdvVersionCode = null
      }
      // Sets the minSdkVersion to the given value.
      if (!project.hasProperty('cdvMinSdkVersion')) {
          cdvMinSdkVersion = null
      }
      // Whether to build architecture-specific APKs.
      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
      }
  
      // Plugin gradle extensions can append to this to have code run at the end.
      cdvPluginPostBuildExtras = []
  }
  
  // PLUGIN GRADLE EXTENSIONS START
  apply from: "cordova-plugin-crosswalk-webview/app-xwalk.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 {
      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 {
          versionCode cdvVersionCode ?: Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode") + "0")
          applicationId privateHelpers.extractStringFromManifest("package")
  
          if (cdvMinSdkVersion != null) {
              minSdkVersion cdvMinSdkVersion
          }
      }
  
      lintOptions {
        abortOnError false;
      }
  
      compileSdkVersion cdvCompileSdkVersion
      buildToolsVersion cdvBuildToolsVersion
  
      if (Boolean.valueOf(cdvBuildMultipleApks)) {
          productFlavors {
              armv7 {
                  versionCode defaultConfig.versionCode + 2
                  ndk {
                      abiFilters "armeabi-v7a", ""
                  }
              }
              x86 {
                  versionCode defaultConfig.versionCode + 4
                  ndk {
                      abiFilters "x86", ""
                  }
              }
              all {
                  ndk {
                      abiFilters "all", ""
                  }
              }
          }
      } 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_6
          targetCompatibility JavaVersion.VERSION_1_6
      }
  
      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)
      }
  }
  
  dependencies {
      compile fileTree(dir: 'libs', include: '*.jar')
      // SUB-PROJECT DEPENDENCIES START
      debugCompile project(path: "CordovaLib", configuration: "debug")
      releaseCompile project(path: "CordovaLib", configuration: "release")
      // SUB-PROJECT DEPENDENCIES END
  }
  
  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') {
              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><strong>My Plugins:</strong></p>
  
  <ul>
  <li>cordova-android-support-v4 4.0.0 "Android Support v4"</li>
  <li>cordova-plugin-compat 1.0.0 "Compat"</li>
  <li>cordova-plugin-crosswalk-webview 1.7.0 "Crosswalk WebView Engine"</li>
  <li>cordova-plugin-device 1.1.2 "Device"</li>
  <li>cordova-plugin-dialogs 1.2.1 "Notification"</li>
  <li>cordova-plugin-file 4.2.0 "File"</li>
  <li>cordova-plugin-geolocation 2.2.0 "Geolocation"</li>
  <li>cordova-plugin-media 2.3.0 "Media"</li>
  <li>cordova-plugin-network-information 1.2.1 "Network Information"</li>
  <li>cordova-plugin-statusbar 2.1.3 "StatusBar"</li>
  <li>cordova-plugin-whitelist 1.2.2 "Whitelist"</li>
  <li>cordova-plugin-x-socialsharing 5.0.12 "SocialSharing"</li>
  <li>SDK Packages(<strong>all</strong>) <a href="https://i.stack.imgur.com/TVyX8.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/TVyX8.png" alt="SDK Packages"></a></li>
  <li>SDK Tools(<strong>all</strong>)<a href="https://i.stack.imgur.com/aUBqx.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/aUBqx.png" alt="SDK Tools"></a></li>
  <li>SDK Updates(<strong>all</strong>)<a href="https://i.stack.imgur.com/bdxMj.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/bdxMj.png" alt="SDK Updates"></a></li>
  </ul>
  
  <p><strong>The output error:</strong></p>
  
  <pre><code>C:\Users\Olaf\Desktop\Projects\Example&gt;cordova build android
  ANDROID_HOME=C:\Users\Olaf\AppData\Local\Android\sdk
  JAVA_HOME=C:\Program Files\java\jdk1.8.0_91
  null
  org.xwalk:xwalk_core_library_beta:18+
  :preBuild UP-TO-DATE
  :preArmv7DebugBuild UP-TO-DATE
  :checkArmv7DebugManifest
  :preX86DebugBuild UP-TO-DATE
  :CordovaLib:preBuild UP-TO-DATE
  :CordovaLib:preDebugBuild UP-TO-DATE
  :CordovaLib:compileDebugNdk UP-TO-DATE
  :CordovaLib:compileLint
  :CordovaLib:copyDebugLint UP-TO-DATE
  :CordovaLib:mergeDebugProguardFiles UP-TO-DATE
  :CordovaLib:packageDebugRenderscript UP-TO-DATE
  :CordovaLib:checkDebugManifest
  :CordovaLib:prepareDebugDependencies
  :CordovaLib:compileDebugRenderscript UP-TO-DATE
  :CordovaLib:generateDebugResValues UP-TO-DATE
  :CordovaLib:generateDebugResources UP-TO-DATE
  :CordovaLib:packageDebugResources UP-TO-DATE
  :CordovaLib:compileDebugAidl UP-TO-DATE
  :CordovaLib:generateDebugBuildConfig UP-TO-DATE
  :CordovaLib:generateDebugAssets UP-TO-DATE
  :CordovaLib:mergeDebugAssets UP-TO-DATE
  :CordovaLib:processDebugManifest UP-TO-DATE
  :CordovaLib:processDebugResources UP-TO-DATE
  :CordovaLib:generateDebugSources UP-TO-DATE
  :CordovaLib:compileDebugJavaWithJavac UP-TO-DATE
  :CordovaLib:processDebugJavaRes UP-TO-DATE
  :CordovaLib:transformResourcesWithMergeJavaResForDebug UP-TO-DATE
  :CordovaLib:transformClassesAndResourcesWithSyncLibJarsForDebug UP-TO-DATE
  :CordovaLib:mergeDebugJniLibFolders UP-TO-DATE
  :CordovaLib:transformNative_libsWithMergeJniLibsForDebug UP-TO-DATE
  :CordovaLib:transformNative_libsWithSyncJniLibsForDebug UP-TO-DATE
  :CordovaLib:bundleDebug UP-TO-DATE
  :prepareAndroidCordovaLibUnspecifiedDebugLibrary UP-TO-DATE
  :preArmv7ReleaseBuild UP-TO-DATE
  :preX86ReleaseBuild UP-TO-DATE
  :CordovaLib:preReleaseBuild UP-TO-DATE
  :CordovaLib:compileReleaseNdk UP-TO-DATE
  :CordovaLib:copyReleaseLint UP-TO-DATE
  :CordovaLib:mergeReleaseProguardFiles UP-TO-DATE
  :CordovaLib:packageReleaseRenderscript UP-TO-DATE
  :CordovaLib:checkReleaseManifest
  :CordovaLib:prepareReleaseDependencies
  :CordovaLib:compileReleaseRenderscript UP-TO-DATE
  :CordovaLib:generateReleaseResValues UP-TO-DATE
  :CordovaLib:generateReleaseResources UP-TO-DATE
  :CordovaLib:packageReleaseResources UP-TO-DATE
  :CordovaLib:compileReleaseAidl UP-TO-DATE
  :CordovaLib:generateReleaseBuildConfig UP-TO-DATE
  :CordovaLib:generateReleaseAssets UP-TO-DATE
  :CordovaLib:mergeReleaseAssets UP-TO-DATE
  :CordovaLib:processReleaseManifest UP-TO-DATE
  :CordovaLib:processReleaseResources UP-TO-DATE
  :CordovaLib:generateReleaseSources UP-TO-DATE
  :CordovaLib:compileReleaseJavaWithJavac UP-TO-DATE
  :CordovaLib:processReleaseJavaRes UP-TO-DATE
  :CordovaLib:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
  :CordovaLib:transformClassesAndResourcesWithSyncLibJarsForRelease UP-TO-DATE
  :CordovaLib:mergeReleaseJniLibFolders UP-TO-DATE
  :CordovaLib:transformNative_libsWithMergeJniLibsForRelease UP-TO-DATE
  :CordovaLib:transformNative_libsWithSyncJniLibsForRelease UP-TO-DATE
  :CordovaLib:bundleRelease UP-TO-DATE
  :prepareComAndroidSupportSupportV42400Alpha2Library UP-TO-DATE
  :prepareOrgXwalkXwalk_core_library_beta184847713Library UP-TO-DATE
  :prepareArmv7DebugDependencies
  :compileArmv7DebugAidl UP-TO-DATE
  :compileArmv7DebugRenderscript UP-TO-DATE
  :generateArmv7DebugBuildConfig UP-TO-DATE
  :generateArmv7DebugAssets UP-TO-DATE
  :mergeArmv7DebugAssets UP-TO-DATE
  :createXwalkCommandLineFileArmv7Debug
  :generateArmv7DebugResValues UP-TO-DATE
  :generateArmv7DebugResources UP-TO-DATE
  :mergeArmv7DebugResources UP-TO-DATE
  :processArmv7DebugManifest UP-TO-DATE
  :processArmv7DebugResources UP-TO-DATE
  :generateArmv7DebugSources UP-TO-DATE
  :compileArmv7DebugJavaWithJavac UP-TO-DATE
  :compileArmv7DebugNdk UP-TO-DATE
  :compileArmv7DebugSources UP-TO-DATE
  :transformClassesWithDexForArmv7Debug
  UNEXPECTED TOP-LEVEL EXCEPTION:
  com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
          at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579)
          at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535)
          at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517)
          at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164)
          at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
          at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)
          at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
          at com.android.dx.command.dexer.Main.run(Main.java:277)
          at com.android.dx.command.dexer.Main.main(Main.java:245)
          at com.android.dx.command.Main.main(Main.java:106)
  
  
   FAILED
  
  BUILD FAILED
  
  Total time: 1 mins 24.646 secs
  
  FAILURE: Build failed with an exception.
  
  * What went wrong:
  Execution failed for task ':transformClassesWithDexForArmv7Debug'.
  &gt; com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_91\bin\java.exe'' finished with non-zero exit value 2
  
  * Try:
  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
  Error: Error code 1 for command: cmd with args: /s,/c,"C:\Users\Olaf\Desktop\Projects\Example\platforms\android\gradlew cdvBuildDebug -b C:\Users\Olaf\Desktop\Projects\Example\platforms\android\build.gradle -Dorg.gradle.daemon=true -Pandroid.useDeprecatedNdk=true"
  </code></pre>
  
  <p>Please, if you know the solution, tell me to continue with my projecto, thanks a lot!</p>