2016-03-17 2 views
7

Ich habe ein Android-Projekt, wo ich Espresso verwende, um Tests zu definieren. Bis jetzt lief alles gut, aber nach dem Upgrade auf AppCompat 23.2.1 (von AppCompat 23.0.1) stürzt die Ausführung der Tests immer ab.AppCompat-Bibliothek 23.2.1 funktioniert nicht mit Espresso v2.2.2

Meine build.gradle Abhängigkeiten:

dependencies { 

// Ok Config 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.2.1' 
compile 'com.android.support:design:23.2.1' 
compile 'com.android.support:support-annotations:23.2.1' 

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' 
androidTestCompile 'com.android.support.test:runner:0.5' 
androidTestCompile 'com.android.support:support-annotations:23.2.1' 
androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.2' 
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.2' 

Das Projekt kompiliert und ausgeführt in Ordnung, aber wenn ich versuche, einen Test mit diesem Fehler abstürzt auszuführen:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity 

Trotz des Textes der Fehler Ich verwende ein Thema von Theme.AppCompat, so dass ich die Fehlermeldung überhaupt nicht verstehe.

Wer hatte das gleiche Problem? Es scheint ein Problem mit den Abhängigkeiten von appcompat und espresso zu geben, aber ich kann es nicht finden und mein Problem lösen.

Irgendwelche Ideen?

Danke!

+0

setzen Sie Ihre Tätigkeit in einem offenkundigen –

+0

@KrupalShah die Aktivität in manifest ist. Tatsächlich läuft die App bei normalen Ausführungen, aber nicht bei Testausführungen in Ordnung. Soll ich der Frage den Manifest-Code hinzufügen? – jaumebd

+0

@jaumebd Irgendwelche Updates zu diesem Thema? –

Antwort

18

Ich denke, dass das Hauptproblem darin besteht, dass Espresso-Module eine andere Support-Bibliothek als die in meinem Projekt verwendete verwenden, also wenn ich versuche, den Test auszuführen, stürzen die Tests ab.

Schließlich habe ich es gelöst, die Support-Bibliothek aller Espresso-Module auszuschließen, um sie zu zwingen, die Support-Bibliothek meines Projekts zu verwenden. Und jetzt funktioniert alles super. Hoffe, das könnte jedem helfen!

Mein gradle sieht wie folgt aus:

compile 'com.android.support:appcompat-v7:23.2.1' 
    compile 'com.android.support:design:23.2.1' 
    compile 'com.android.support:support-annotations:23.2.1' 


    androidTestCompile ('com.android.support.test:runner:0.5') { 
     exclude group: 'com.android.support' 
    } 
    androidTestCompile ('com.android.support.test:rules:0.5') { 
     exclude group: 'com.android.support' 
    } 
    androidTestCompile ('com.android.support.test.espresso:espresso-core:2.2.2') { 
     exclude group: 'com.android.support' 
    } 
    androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.2.2') { 
     exclude group: 'com.android.support' 
    } 
    androidTestCompile ('com.android.support.test.espresso:espresso-intents:2.2.2') { 
     exclude group: 'com.android.support' 
    }