title: Android tests build error: Multiple dex files define Landroid/support/test/BuildConfig
body: <p>I'm trying to add Espresso 2 to my project (which also has lots of other dependencies), but I'm hitting this error when trying to run tests:</p>
  
  <pre><code>UNEXPECTED TOP-LEVEL EXCEPTION:
  com.android.dex.DexException: Multiple dex files define Landroid/support/test/BuildConfig;
      at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
      at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
      at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
      ...
  </code></pre>
  
  <p>The non-test build works fine.  </p>
  
  <p><strong>Does anybody have any tips on the best way to debug this?</strong></p>
  
  <p>I've tried running <code>./gradlew -q :&lt;my_project&gt;:dependencies</code>, but I can't see any obvious problems (though I don't know much about interpreting its output):</p>
  
  <pre><code>&lt;snip&gt;
  
  androidTestCompile - Classpath for compiling the androidTest sources.
  +--- com.squareup.spoon:spoon-client:1.1.2
  +--- com.google.dexmaker:dexmaker-mockito:1.0
  |    +--- com.google.dexmaker:dexmaker:1.0
  |    \--- org.mockito:mockito-core:1.9.5
  |         +--- org.hamcrest:hamcrest-core:1.1
  |         \--- org.objenesis:objenesis:1.0
  +--- com.google.dexmaker:dexmaker:1.0
  +--- org.mockito:mockito-core:1.9.5 (*)
  +--- com.jayway.android.robotium:robotium-solo:5.3.1
  +--- com.android.support.test.espresso:espresso-core:2.0
  |    +--- com.squareup:javawriter:2.1.1
  |    +--- org.hamcrest:hamcrest-integration:1.1
  |    |    \--- org.hamcrest:hamcrest-core:1.1
  |    +--- org.hamcrest:hamcrest-library:1.1
  |    |    \--- org.hamcrest:hamcrest-core:1.1
  |    +--- javax.inject:javax.inject:1
  |    +--- com.android.support.test.espresso:espresso-idling-resource:2.0
  |    +--- com.android.support.test:testing-support-lib:0.1
  |    |    \--- junit:junit-dep:4.10
  |    |         \--- org.hamcrest:hamcrest-core:1.1
  |    +--- com.google.code.findbugs:jsr305:2.0.1
  |    +--- javax.annotation:javax.annotation-api:1.2
  |    \--- org.hamcrest:hamcrest-core:1.1
  \--- com.android.support.test:runner:0.2
       +--- junit:junit-dep:4.10 (*)
       +--- com.android.support.test:exposed-instrumentation-api-publish:0.2
       \--- com.android.support:support-annotations:22.0.0
  
  &lt;snip&gt;
  
  compile - Classpath for compiling the main sources.
  +--- com.android.support:appcompat-v7:22.1.0
  |    \--- com.android.support:support-v4:22.1.0
  |         \--- com.android.support:support-annotations:22.1.0
  +--- com.android.support:support-v4:22.1.0 (*)
  +--- com.afollestad:material-dialogs:0.7.2.4
  |    +--- com.android.support:support-v4:22.0.0 -&gt; 22.1.0 (*)
  |    +--- com.android.support:appcompat-v7:22.0.0 -&gt; 22.1.0 (*)
  |    +--- com.android.support:support-annotations:22.0.0 -&gt; 22.1.0
  |    \--- com.android.support:recyclerview-v7:22.0.0
  |         +--- com.android.support:support-v4:22.0.0 -&gt; 22.1.0 (*)
  |         \--- com.android.support:support-annotations:22.0.0 -&gt; 22.1.0
  +--- com.google.android.gms:play-services-base:7.0.0
  |    \--- com.android.support:support-v4:22.0.0 -&gt; 22.1.0 (*)
  +--- com.google.android.gms:play-services-gcm:7.0.0
  |    \--- com.google.android.gms:play-services-base:7.0.0 (*)
  +--- de.greenrobot:greendao:1.3.7
  +--- de.greenrobot:eventbus:2.2.0
  +--- com.squareup.wire:wire-runtime:1.4.0
  |    \--- com.squareup.okio:okio:0.6.0 -&gt; 1.0.1
  +--- com.squareup.okio:okio:1.0.1
  +--- com.squareup.okhttp:okhttp-urlconnection:2.0.0
  |    \--- com.squareup.okhttp:okhttp:2.0.0
  |         \--- com.squareup.okio:okio:1.0.0 -&gt; 1.0.1
  +--- com.squareup.retrofit:retrofit:1.6.0
  |    \--- com.google.code.gson:gson:2.2.4
  +--- com.squareup.retrofit:converter-wire:1.6.0
  |    +--- com.squareup.retrofit:retrofit:1.6.0 (*)
  |    \--- com.squareup.wire:wire-runtime:1.2.0 -&gt; 1.4.0 (*)
  +--- com.squareup.okhttp:okhttp:2.0.0 (*)
  +--- com.squareup.picasso:picasso:2.4.0
  +--- com.path:android-priority-jobqueue:1.1.2
  |    \--- com.google.android:android:2.2.1
  |         +--- commons-logging:commons-logging:1.1.1
  |         +--- org.apache.httpcomponents:httpclient:4.0.1
  |         |    +--- org.apache.httpcomponents:httpcore:4.0.1
  |         |    +--- commons-logging:commons-logging:1.1.1
  |         |    \--- commons-codec:commons-codec:1.3
  |         +--- org.khronos:opengl-api:gl1.1-android-2.1_r1
  |         +--- xerces:xmlParserAPIs:2.6.2
  |         +--- xpp3:xpp3:1.1.4c
  |         \--- org.json:json:20080701
  +--- com.netflix.rxjava:rxjava-android:0.16.1
  |    \--- com.netflix.rxjava:rxjava-core:0.16.1
  +--- com.nineoldandroids:library:2.4.0
  +--- it.sephiroth.android.library.horizontallistview:hlistview:1.2.2
  |    \--- com.android.support:support-v4:19.1.+ -&gt; 22.1.0 (*)
  +--- com.joooonho:selectableroundedimageview:1.0.1
  +--- com.crashlytics.sdk.android:crashlytics:2.0.1
  |    +--- com.crashlytics.sdk.android:answers:1.0.1
  |    |    \--- io.fabric.sdk.android:fabric:1.0.1
  |    +--- io.fabric.sdk.android:fabric:1.0.1
  |    \--- com.crashlytics.sdk.android:beta:1.0.1
  |         \--- io.fabric.sdk.android:fabric:1.0.1
  +--- com.mixpanel.android:mixpanel-android:4.5.3
  \--- com.facebook.android:facebook-android-sdk:4.0.0
       +--- com.android.support:support-v4:[21,22) -&gt; 22.1.0 (*)
       \--- com.parse.bolts:bolts-android:1.1.4
  
  &lt;snip&gt;
  </code></pre>
  
  <p>I've also tried searching subfolders of my <code>build/intermediates</code> directory, but I couldn't see any smoking guns (though I'm not sure I was searching all the external dependency JARs in the right way).</p>
  
  <p>Here is the dependency section of my build.gradle:</p>
  
  <pre><code>dependencies {
      compile 'com.android.support:appcompat-v7:22.1.0'
      compile 'com.android.support:support-v4:22.1.0'
      compile 'com.afollestad:material-dialogs:0.7.2.4'
      compile 'com.google.android.gms:play-services-base:7.0.0'
      compile 'com.google.android.gms:play-services-gcm:7.0.0'
      compile 'de.greenrobot:greendao:1.3.7'
      compile 'de.greenrobot:eventbus:2.2.0'
      compile 'com.squareup.wire:wire-runtime:1.4.0'
      compile 'com.squareup.okio:okio:1.0.1'
      compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
      compile 'com.squareup.retrofit:retrofit:1.6.0'
      compile 'com.squareup.retrofit:converter-wire:1.6.0'
      compile 'com.squareup.okhttp:okhttp:2.0.0'
      compile 'com.squareup.picasso:picasso:2.4.0'
      compile 'com.path:android-priority-jobqueue:1.1.2'
      compile 'com.netflix.rxjava:rxjava-android:0.16.1'
      compile 'com.nineoldandroids:library:2.4.0'
      compile 'it.sephiroth.android.library.horizontallistview:hlistview:1.2.2'
      compile 'com.joooonho:selectableroundedimageview:1.0.1'
      compile('com.crashlytics.sdk.android:crashlytics:2.0.1@aar') {
          transitive = true;
      }
      compile "com.mixpanel.android:mixpanel-android:4.5.3"
      compile "com.facebook.android:facebook-android-sdk:4.0.0"
  
      // For the Rollbar JAR, as it is not available in Maven central
      compile fileTree(dir: 'libs', include: '*.jar')
  
      androidTestCompile 'com.squareup.spoon:spoon-client:1.1.2'
      androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.0'
      androidTestCompile 'com.google.dexmaker:dexmaker:1.0'
      androidTestCompile 'org.mockito:mockito-core:1.9.5'
      androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.3.1'
      androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
      androidTestCompile 'com.android.support.test:runner:0.2'
  }
  </code></pre>
  
  <p><strong>Update:</strong> when I update from <code>com.android.tools.build:gradle:1.0.0</code> to <code>com.android.tools.build:gradle:1.1.1</code>, I get this warning:</p>
  
  <pre><code>Warning:Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (22.1.0) and test app (22.0.0) differ.
  </code></pre>