title: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat with Gradle
body: <p>When I run <code>./gradlew assembleDebug</code> I'm getting:</p>
  
  <pre><code>:app:dexDebug FAILED
  
  FAILURE: Build failed with an exception.
  
  * What went wrong:
  Execution failed for task ':app:dexDebug'.
  &gt; com.android.ide.common.internal.LoggedErrorException: Failed to run command:
      /home/grub/Main/android-sdk-linux/build-tools/19.1.0/dx --dex --num-threads=4 --output 
  </code></pre>
  
  <p>List of merged classes and jars:</p>
  
  <pre><code>UNEXPECTED TOP-LEVEL EXCEPTION:
          com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
  </code></pre>
  
  <p>It's very similar to <a href="https://stackoverflow.com/questions/20989317/multiple-dex-files-define-landroid-support-v4-accessibilityservice-accessibility">this</a> question and problem should be in multiple support-v4 libraries. I cleaned up <code>build.gradle</code> :</p>
  
  <pre><code>repositories {
      maven { url "http://dl.bintray.com/populov/maven" }
      mavenCentral()
  }
  
  apply plugin: 'android'
  
  android {
      compileSdkVersion 19
      buildToolsVersion '19.1.0'
  
      defaultConfig {
          minSdkVersion 9
          targetSdkVersion 19
          versionCode 8
          versionName "2.1.17"
      }
      dependencies {
          compile fileTree(dir: 'libs', include: ['*.jar'])
          compile 'com.android.support:support-v4:20.+'
          compile ('com.google.android.gms:play-services:5+'){
              exclude group: 'com.android.support', module: 'support-v4'
          }
          compile(project(':libraries:com.typefacedwidgets')) {
              exclude group: 'com.android.support', module: 'support-v4'
          }
          compile(project(':libraries:com.truepagerindicator')) {
              exclude group: 'com.android.support', module: 'support-v4'
          }
          compile ('com.sothree.slidinguppanel:library:+'){
              exclude group: 'com.android.support', module: 'support-v4'
          }
          compile ('com.github.chrisbanes.pulltorefresh:sample:2.1.1+'){
              exclude group: 'com.google.android', module: 'support-v4'
          }
          compile 'com.thoughtworks.xstream:xstream:1.4.7'
          compile 'com.squareup.retrofit:retrofit:1.6.1'
          compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
          compile 'com.squareup.okhttp:okhttp:2.0.0'
          compile 'com.google.code.gson:gson:2.3'
          compile 'de.greenrobot:eventbus:2.2.1'
      }
  }
  </code></pre>
  
  <p>To check dependencies I did <code>./gradlew -q -dependencies</code> which is showing:</p>
  
  <pre><code>+--- com.android.support:support-v4:20.+ -&gt; 20.0.0
  |    \--- com.android.support:support-annotations:20.0.0
  +--- com.google.android.gms:play-services:5+ -&gt; 5.2.08
  +--- project :libraries:com.typefacedwidgets
  +--- project :libraries:com.truepagerindicator
  +--- com.sothree.slidinguppanel:library:+ -&gt; 2.0.1
  |    \--- com.nineoldandroids:library:+ -&gt; 2.4.0
  +--- com.github.chrisbanes.pulltorefresh:sample:2.1.1+ -&gt; 2.1.1
  |    +--- com.github.chrisbanes.pulltorefresh:library:2.1.1
  |    +--- com.github.chrisbanes.pulltorefresh:extra-listfragment:2.1.1
  |    |    \--- com.github.chrisbanes.pulltorefresh:library:2.1.1
  |    \--- com.github.chrisbanes.pulltorefresh:extra-viewpager:2.1.1
  |         \--- com.github.chrisbanes.pulltorefresh:library:2.1.1
  +--- com.thoughtworks.xstream:xstream:1.4.7
  |    +--- xmlpull:xmlpull:1.1.3.1
  |    \--- xpp3:xpp3_min:1.1.4c
  +--- com.squareup.retrofit:retrofit:1.6.1
  |    \--- com.google.code.gson:gson:2.2.4 -&gt; 2.3
  +--- com.squareup.okhttp:okhttp-urlconnection:2.0.0
  |    \--- com.squareup.okhttp:okhttp:2.0.0
  |         \--- com.squareup.okio:okio:1.0.0
  +--- com.squareup.okhttp:okhttp:2.0.0 (*)
  +--- com.google.code.gson:gson:2.3
  \--- de.greenrobot:eventbus:2.2.1
  </code></pre>
  
  <p>It seems like it should be OK but problem remains the same.</p>
  
  <p><strong>UPDATE:</strong></p>
  
  <p>The problem was in apkLib dependency and confuse msg from Gradle. It was solved like in <a href="https://stackoverflow.com/a/22007714/1823992">this</a> answer putting Android-PullToRefresh into separate android library project in Gradle. </p>