J'essaie de compiler 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 quelques recherches sur le Web me porte à croire que ce problème est en quelque sorte lié à JUnit. Cependant, je n'utilise pas JUnit dans mon projet. J'ai peut-être activé une option par inadvertance? Dans ce cas, comment désactiver les tests unitaires dans mon projet? Des idées?
Enfin trouvé. C'est dans la boîte de dialogue Configurations Exécuter/Déboguer. Disabled JUnit et il compile à nouveau.
Ce problème est généralement dû à un type de test incorrect: Junit au lieu de Test Android
Pour les tests JUnit standard, il vous manque la bibliothèque JUnit, essayez d'ajouter ceci dans le fichier build.gradle:
dependencies {
...
testCompile 'junit:junit:4.12'
...
}
Et assurez-vous de placer les tests dans le répertoire "test" parallèlement au paquet "principal" (les tests d'instrumentation passent dans "androidTest", mais la configuration est différente).
Forcer le projet à "synchroniser" via le menu Outils> Android> Synchroniser un projet avec des fichiers Gradle cliquez sur "synchroniser maintenant").
Dans mes configurations Run/Debug, 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'. Cliquez sur MyTest sous JUnit et appuyez sur '-' en haut à gauche. Cela a permis à MyTest de parcourir le périphérique sans erreur.
Toutes les réponses sont bonnes-
Assurez-vous que le répertoire de test est enregistré dans les sourcesSets.
Android{
...
defaultConfig {
...
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
sourceSets {
androidTest {
Java.srcDirs = ['src/androidTest/Java']
}
}
}
dependencies{
...
androidTestCompile 'junit:junit:4.12'
androidTestCompile 'com.Android.support.test:runner:0.5'
}
J'ai eu ce problème à deux reprises après avoir modifié certains plugins et dépendances build.gradle
.
Allumer et éteindre simplement Android Studio a résolu le problème pour moi (versions 2.1.2 et 2.2).