Search code examples
androidgradlejunitjmockit

How to resolve "multiple dex files define Lorg/junit/runner/Runner" in Android Studio


I'm trying to run instrumentation tests inside Android Studio.

I already researched and tried a lot, but I can't get past this error message.

My modules dependencies:

(compile)

+--- com.crashlytics.sdk.android:crashlytics:2.5.5
|    +--- com.crashlytics.sdk.android:answers:1.3.6
|    |    \--- io.fabric.sdk.android:fabric:1.3.10
|    +--- com.crashlytics.sdk.android:crashlytics-core:2.3.8
|    |    +--- com.crashlytics.sdk.android:answers:1.3.6 (*)
|    |    \--- io.fabric.sdk.android:fabric:1.3.10
|    +--- io.fabric.sdk.android:fabric:1.3.10
|    \--- com.crashlytics.sdk.android:beta:1.1.4
+--- com.jakewharton:butterknife:7.0.1
+--- io.realm:realm-android:0.87.5
+--- com.android.support:appcompat-v7:23.0.1
|    \--- com.android.support:support-v4:23.0.1
|         \--- com.android.support:support-annotations:23.0.1
+--- com.android.support:cardview-v7:23.0.1
+--- com.android.support:recyclerview-v7:23.0.1
|    +--- com.android.support:support-v4:23.0.1 (*)
|    \--- com.android.support:support-annotations:23.0.1
+--- com.android.support:design:23.0.1
|    +--- com.android.support:support-v4:23.0.1 (*)
|    \--- com.android.support:appcompat-v7:23.0.1 (*)
+--- io.reactivex:rxandroid:1.1.0
|    \--- io.reactivex:rxjava:1.1.0
+--- io.reactivex:rxjava:1.1.0
\--- project :domain

(androidTest)

+--- org.jmockit:jmockit:1.22
\--- com.android.support.test:runner:0.4
     +--- com.android.support:support-annotations:23.0.1
     +--- junit:junit:4.12
     |    \--- org.hamcrest:hamcrest-core:1.3
     \--- com.android.support.test:exposed-instrumentation-api-publish:0.4

any help appreciated


Solution

  • The short answer is: you can't (easily) fix this because JMockit dependencies are broken.

    You can find the long explanation here.