2017-08-07 2 views
6

Je reçois une erreur d'exécution Aucune méthode d'interface trackUsage() dans UsageTracker.java lorsque les lignes s'exécutent dans le test Espresso pour faire défiler vers un élément donné dans la liste des RecyclerView:Espresso Test Fail: Aucune méthode d'interface trackUsage() dans UsageTracker.java

onView(withId(R.id.recyclerView)).perform(scrollTo(hasDescendant(withText(text)))); 

J'utilise RecyclerViewActions pour la méthode scrollTo().

Voici mes configurations actuelles et dépendances Gradle:

  • Android Studio 3.0 Canery 9
  • compileSdkVersion 25
  • buildToolsVersion "26.0.1"
  • JUnit: JUnit: 4,12
  • com .android.support.test: runner: 1.0.0
  • com.android.support.test: rules: 1.0.0
  • com.android.support.test.espresso: espresso-contrib: 2.2.2
  • com.android.support.test.espresso: espresso-core: 2.2.2
  • Android soutien Bibliothèque: 25.3.1

en outre, pour chacun des « s J'utilise les exclut suivantes:

    groupe exclure
  • : 'androidTestCompile com.android.support', le module: 'appcompat'
  • ne comprennent pas groupe: 'com.android.support', le module: 'support-v4'
  • excluent groupe: 'com.android.support', le module: support-annotations '
  • comprennent le module: 'recyclerview-v7'

message d'erreur complet: Aucune méthode d'interface trackUsage (Ljava/lang/String;) V dans la classe Landroid/support/test/interne/coureur/tracker/UsageTracker; ou ses super classes (la déclaration de 'android.support.test.internet.runner.tracker.UsageTracker' apparaît dans /data/app/adamhurwitz.github.io.doordashlite.test-2/base.apk)

+1

Vérifiez la version de UsageTracker. Ici vous avez une question similaire https://stackoverflow.com/questions/38951218/java-lang-nosuchmethoderror-no-interface-method-sortljava-util-comparator-ex/38951385#38951385 – Ivan

+1

Est-ce que UsageTracker déclare le trackUsage dans son interface? ? – Ivan

+0

Merci pour la réponse @Ivan La méthode * trackUsage() * est définie dans l'interface UsageTracker. –

Répondre

17

Je rencontrais le même problème avec les règles 1.0.0 et runner 1.0.0. Bien que j'ai été capable de le résoudre en ajoutant simplement espresso core 3.0.0.Ce qui évite l'utilisation de versions obsolètes.

com.android.support.test:rules:1.0.0 
com.android.support.test.runner:1.0.0 
com.android.support.test.espresso:espresso-core:3.0.0 

EDIT: Pendant ce temps les bibliothèques ont été mises à jour, les versions actuelles que 2018/02 sont:

com.android.support.test:rules:1.0.1 
com.android.support.test.runner:1.0.1 
com.android.support.test.espresso:espresso-core:3.0.1 

Les versions à ce jour peuvent en général se trouve sur la Android Developers page.

3

I eu le même problème. Pour résoudre ce problème je l'ai changé les dépendances de suivantes:

com.android.support.test:runner:1.0.0 
com.android.support.test:rules:1.0.0 

à:

com.android.support.test:runner:0.5 
com.android.support.test:rules:0.5 

MISE À JOUR:

La réponse de Michael est mieux, ne pas utiliser cette version obsolète plus!