2016-03-17 8 views
7

Ho un progetto Android in cui utilizzo l'espresso per definire i test. Tutto ha funzionato bene fino ad ora, ma dopo l'aggiornamento ad AppCompat 23.2.1 (da AppCompat 23.0.1) l'esecuzione dei test si blocca sempre.Libreria AppCompat 23.2.1 non funziona con espresso v2.2.2

mie dipendenze build.gradle:

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' 

Il progetto compila ed esegue ok, ma quando si tenta di eseguire un test si blocca con questo errore:

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

Nonostante il testo del errore Sto usando un tema discendente di Theme.AppCompat, quindi non capisco affatto il messaggio di errore.

Qualcuno ha avuto lo stesso problema? Sembra essere un problema con le dipendenze di appcompat e espresso, ma non riesco a trovarlo e risolvere il mio problema.

Qualche idea?

Grazie!

+0

mettere la vostra attività in palese –

+0

@KrupalShah l'attività è in palese. Di fatto, l'app funziona correttamente con le esecuzioni normali ma non con le esecuzioni di test. Dovrei aggiungere il codice manifest alla domanda? – jaumebd

+0

@jaumebd Qualche aggiornamento su questo? –

risposta

18

Penso che il problema principale sia che i moduli espresso utilizzano una libreria di supporto diversa da quella utilizzata nel mio progetto, quindi quando provo a eseguire il test i test si bloccano.

Infine ho risolto escludendo la libreria di supporto di tutti i moduli espresso, per costringerli a utilizzare la libreria di supporto del mio progetto. E ora tutto funziona alla grande. Spero che questo possa aiutare chiunque!

mio Gradle si presenta così:

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' 
    } 
Problemi correlati