0
votes

I tried to add espresso as described on their website and after excluding the annotations because of a version mismatch i was able to sync my dependencies.

Now I have got the Problem that I get the following Error message when trying to run my Tests:

app:preDexDebugAndroidTest :app:dexDebugAndroidTest AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"} AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexException: Multiple dex files define Landroid/support/test/BuildConfig;","position":{},"original":"com.android.dex.DexException: Multiple dex files define Landroid/support/test/BuildConfig;"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)","position":{},"original":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)","position":{},"original":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)","position":{},"original":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)","position":{},"original":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)","position":{},"original":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)","position":{},"original":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)","position":{},"original":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.Main.main(Main.java:106)","position":{},"original":"\tat com.android.dx.command.Main.main(Main.java:106)"}

FAILED

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':app:dexDebugAndroidTest'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

This is my code in my gradle file:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    defaultConfig {
        applicationId "dhbw.mobile2"
        minSdkVersion 18
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    packagingOptions {
        exclude 'LICENSE.txt'
    }

    buildTypes {
        debug {
            resValue "string", "google_maps_api_key", "AIzaSyDgy1QFJKNnashjDkX1VBkDyt4t1HKtmyU"
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            resValue "string", "google_maps_api_key", "AIzaSyDgy1QFJKNnashjDkX1VBkDyt4t1HKtmyU"
        }
    }
    sourceSets {
        main { java.srcDirs = ['src/main/java', 'src/instrumentTest', 'src/instrumentTest/java'] }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: 'Parse*.jar')
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile 'com.google.android.gms:play-services:7.3.0'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile 'com.facebook.android:facebook-android-sdk:4.1.1'
    compile 'commons-io:commons-io:2.4'
    compile 'com.android.support:support-v4:22.1.1'


    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
    androidTestCompile ('com.android.support.test:runner:0.2')
            {exclude module: "support-annotations"}
}

I hope anyone can help me!! Thanks! :)

1

1 Answers

0
votes

This is how my working set up looks like:

dependencies {
    //app dependencies ...

    // Instrumentation tests
    androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.1'
    androidTestCompile 'com.android.support.test:rules:0.2'
}

configurations {
    androidTestCompile.exclude group: 'com.android.support', module: 'support-v4'
    androidTestCompile.exclude group: 'com.android.support', module: 'recyclerview-v7'
    androidTestCompile.exclude group: 'com.android.support', module: 'appcompat-v7'
    androidTestCompile.exclude group: 'com.android.support', module: 'support-annotations'
}

And com.android.support.test.espresso:espresso-contrib:2.1 contains both the espresso-core and runner dependencies.