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
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;”