Exception dans le thread «main» java.lang.NoClassDefFoundError: junit / textui / ResultPrinter

J’essaie de comstackr mon projet Android dans Android Studio 0.3.0. Aujourd’hui, j’obtiens l’erreur suivante:

Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:188) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113) Caused by: java.lang.ClassNotFoundException: junit.textui.ResultPrinter at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) ... 3 more Process finished with exit code 1 

Faire des recherches sur le Web m’amène à penser que ce problème est en quelque sorte lié à JUnit. Cependant, je n’utilise pas JUnit dans mon projet. J’ai peut-être par inadvertance activé une option? Dans ce cas, comment puis-je désactiver les tests unitaires dans mon projet? Des idées?

Enfin trouvé. C’est dans la boîte de dialog Configurations Exécuter / Déboguer. Désactivé JUnit et il comstack à nouveau.

Ce problème est généralement dû à un type de test incorrect: Junit au lieu de Android Test Sélectionnez le test Android au lieu de JUnitSélectionnez le test Android au lieu de JUnit

Pour les tests JUnit standard, la bibliothèque JUnit est manquante, essayez d’append ceci dans build.gradle:

 dependencies { ... testComstack 'junit:junit:4.12' ... } 

Et assurez-vous de mettre les tests dans le répertoire “test” en parallèle avec le package “principal” (les tests d’instrumentation vont dans “androidTest”, mais c’est une configuration différente).

Forcer le projet à “synchroniser” via le menu: Outils> Android> Synchroniser le projet avec Gradle Files ou forcer le projet à “synchroniser” en effectuant un faux changement dans le fichier build.gradle (append un espace puis le supprimer puis cliquer sur “Sync”) à présent”).

Dans mes configurations d’exécution / débogage, j’avais MyTest sous AndroidTests et sous JUnitTests. Le MyTest sous AndroidTests a été configuré correctement, mais j’ai toujours l’erreur ‘NoClassDefFoundError: junit / textui / ResultPrinter’. Cliqué sur MyTest sous JUnit et appuyé sur ‘-‘ en haut à gauche. Cela a permis à MyTest de parcourir le périphérique et de supprimer les erreurs.

J’ai eu ce problème deux fois après avoir modifié certains plugins et dépendances build.gradle .

Le simple fait de désactiver et de réactiver Android Studio a été corrigé pour moi (versions 2.1.2 et 2.2).

Toutes les réponses sont bonnes-

Assurez-vous que les répertoires source ont le répertoire de test enregistré.

 android{ ... defaultConfig { ... testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } sourceSets { androidTest { java.srcDirs = ['src/androidTest/java'] } } } dependencies{ ... androidTestComstack 'junit:junit:4.12' androidTestComstack 'com.android.support.test:runner:0.5' } 

En mettant simplement la solution qui a fonctionné pour moi, cela devrait être essayé si vous configurez l’environnement pour la première fois:

Pour Windows: 1) dans les variables d’environnement, ajoutez une nouvelle “variable système” ANDROID_SDK_HOME = D: \ Program Files \ android-sdk-windows (sélectionnez votre répertoire personnel de Android sdk)

2) modifier les variables système Path, append “% Android_SDK_HOME% \ tools;”