Build fails when trying to include com.android.support.test.espresso (for UI testing purposes)

I’m trying to incorporate Android’s espresso framework for integrating UI testing into my app.

Here is my build.gradle file.

dependencies {
compile ‘com.android.support.test.espresso:espresso-core:2.2.2’
}

Errors:

/var/folders/zg/j2hds645021cw2kzvfpfn16c0000gq/T/com.lukedbartolomeo.flashnotederby.fire.temp.sln (Build) →
(Build target) →
/Users/luke/Documents/flashnote android/com.lukedbartolomeo.flashnotederby.elements (default targets) →
/Applications/Fire.app/Contents/Resources/XbuildTargets/RemObjects Software/Elements/RemObjects.Elements.Cooper.Android.targets (CooperAndroidAfterCompile target) →

    /Applications/Fire.app/Contents/Resources/XbuildTargets/RemObjects Software/Elements/RemObjects.Elements.Cooper.Android.targets: error : Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AnimRes;
    /Applications/Fire.app/Contents/Resources/XbuildTargets/RemObjects Software/Elements/RemObjects.Elements.Cooper.Android.targets: error : Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AnimatorRes;
    /Applications/Fire.app/Contents/Resources/XbuildTargets/RemObjects Software/Elements/RemObjects.Elements.Cooper.Android.targets: error : Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AnyRes;
    /Applications/Fire.app/Contents/Resources/XbuildTargets/RemObjects Software/Elements/RemObjects.Elements.Cooper.Android.targets: error : Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/ArrayRes;
    /Applications/Fire.app/Contents/Resources/XbuildTargets/RemObjects Software/Elements/RemObjects.Elements.Cooper.Android.targets: error : Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AttrRes;
    /Applications/Fire.app/Contents/Resources/XbuildTargets/RemObjects Software/Elements/RemObjects.Elements.Cooper.Android.targets: error : Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/BinderThread;
    /Applications/Fire.app/Contents/Resources/XbuildTargets/RemObjects Software/Elements/RemObjects.Elements.Cooper.Android.targets: error : Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/BoolRes;
    /Applications/Fire.app/Contents/Resources/XbuildTargets/RemObjects Software/Elements/RemObjects.Elements.Cooper.Android.targets: error : Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/CallSuper;
    /Applications/Fire.app/Contents/Resources/XbuildTargets/RemObjects Software/Elements/RemObjects.Elements.Cooper.Android.targets: error : Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/CheckResult;
     168 Warning(s)
     9 Error(s)

Project builds fine when I comment out the dependency in build.gradle.
Using:
Android SDK tools : 25.2.5
Android SDK platform tools : 25.0.3
Android SDK build tools : 25.0.2

It’s not essential that I get this working right now, but my previous UI testing framework (Calabash) has been discontinued and I thought I would give Android’s native version a try.

Are you using the public 9.1 release or the recent 9.1 beta? i just tried, and i can add the espresso reference to a new Android project and art builds just fine, with 9.1 build 2137. But we do have made some significant changes/improvements to how Gradle works, so ti could be that this newly fixed.

If you’re on 9.0, can i send you a newer beta build? What’s your account name on remobjects.com?

thanx,
marc

Hmm, actually i get a slightly different error:

                              /Users/mh/Test Projects/com.remobjects.androidapplication21/obj/Debug/Android/dependencies/hamcrest-core-1.3.jar:
                                => LICENSE.txt
                                /Users/mh/Test Projects/com.remobjects.androidapplication21/obj/Debug/Android/dependencies/hamcrest-integration-1.3.jar:
                                => LICENSE.txt
                                Found duplicate file for APK: LICENSE.txt
                                Origin 1: /Users/mh/Test Projects/com.remobjects.androidapplication21/obj/Debug/Android/dependencies/hamcrest-core-1.3.jar
                                Origin 2: /Users/mh/Test Projects/com.remobjects.androidapplication21/obj/Debug/Android/dependencies/hamcrest-integration-1.3.jar
                        Task "AndroidPack" execution -- FAILED

it looks like the two ham crest .jar files actually contain a LICENSE.txt file each, and the Android APK tools really don’t like that… Investigating…

I do have access to the beta downloads page. The last time I tried one of the most recent builds, there were a lot of syntax changes (Swift 3) I was going to have to make to my project, so I stuck with the latest stable version. I might give it another shot.

Yeah, unfortunately Swift 3 changed the syntax quite a lot :(.