Android Espresso Issue - Dependency conflict
So after a lot of digging around, I found I needed to change the dependency for the support annotations.
So I needed to change
compile 'com.android.support:support-annotations:22.2.0'
to
androidTestCompile 'com.android.support:support-annotations:22.+'
New version of espresso-contrib 2.2.2
library has now dependency on com.android.support:appcompat-v7:23.1.1
resulting into conflict when using different version of appcompat-v7
in our compile
time dependency like below:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.2'
}
To avoid conflict when we exclude appcompat-v7
dependency from espresso-contrib
like below it breaks again due to some value dependencies on design support
lib.
androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.2.2'){
exclude module: 'support-annotations'
exclude module: 'support-v4'
exclude module: 'support-v13'
exclude module: 'recyclerview-v7'
exclude module: 'appcompat-v7'
}
Error:
Error:(69) Error retrieving parent for item: No resource found that matches the given name 'TextAppearance.AppCompat.Display1'.
So, the solution to above problem is to exclude 'design-support' lib depedency from espresso-contrib
like below:
androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.2.2'){
exclude module: 'support-annotations'
exclude module: 'support-v4'
exclude module: 'support-v13'
exclude module: 'recyclerview-v7'
exclude module: 'design'
}
That solves the conflict problem!
For more detailed version of the answer you could check my other answer