Я пытаюсь скомпилировать свой проект Android в Studio Android 0.3.0. Сегодня я получаю следующую ошибку:
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
Выполнение некоторых веб-поисков приводит меня полагать, что эта проблема так или иначе связана с JUnit. Однако я не использую JUnit в своем проекте. Возможно, я непреднамеренно включил некоторую опцию? В этом случае, как я отключаю поблочное тестирование в своем проекте? Какие-либо идеи?
Все ответы хороши -
, Удостоверяются, что у Вас есть sourceSets, зарегистрировали тестовый каталог.
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'
}
У меня дважды была эта проблема после изменения приблизительно build.gradle
плагины и зависимости вокруг.
Просто выключающий и включающий Studio Android снова зафиксировал его для меня (версии 2.1.2 и 2.2).
Обычно эта проблема вызывается из-за неправильного тестового типа: Junit вместо Тест Android
Для стандартных тестов JUnit Вы пропускаете библиотеку JUnit, пытаетесь добавить это в build.gradle:
dependencies {
...
testCompile 'junit:junit:4.12'
...
}
И удостоверяются, что Вы помещаете тесты в "тестовую" параллель каталога к "основному" пакету (тесты инструментария входит в "androidTest", но это - другая установка).
В моем Выполнении/Настройках отладочного процесса у меня был MyTest под AndroidTests и под JUnitTests. MyTest под AndroidTests был настроен правильно, но я все еще получил 'NoClassDefFoundError: junit/textui/ResultPrinter' ошибка. MyTest, на который нажимают, под JUnit и нажатым '-' в верхнем левом углу. Это позволило MyTest пробегать устройство, избавленное от ошибки.