Intereting Posts

Исключение в потоке «main» java.lang.NoClassDefFoundError: junit / textui / ResultPrinter

Я пытаюсь скомпилировать свой Android-проект в Android Studio 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 в своем проекте. Может, я случайно включил какой-то вариант? В этом случае, как отключить модульное тестирование в моем проекте? Есть идеи?

Наконец нашел его. Он находится в диалоговом окне «Run / Debug Configurations». Отключен JUnit и он снова компилируется.

Обычно эта проблема возникает из-за неправильного типа теста: Junit вместо Android Test Выберите Android-тест вместо JUnitВыберите Android-тест вместо JUnit

Для стандартных тестов JUnit вам не хватает библиотеки JUnit, попробуйте добавить это в build.gradle:

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

И убедитесь, что вы помещаете тесты в каталог «test» параллельно с «основным» пакетом (контрольные тесты входят в «androidTest», но это другая настройка).

Заставьте проект «синхронизировать» через меню: «Инструменты»> «Android»> «Синхронизировать проект с файлами« Грейдл »или заставить проект« синхронизировать », сделав поддельное изменение в файле build.gradle (добавьте пробел, а затем удалите его, а затем нажмите« sync » Теперь").

В моих конфигурациях Run / Debug у меня был MyTest под AndroidTests и под JUnitTests. MyTest в AndroidTests был настроен правильно, но у меня все еще есть ошибка «NoClassDefFoundError: junit / textui / ResultPrinter». Нажмите на MyTest под JUnit и нажмите «-» в левом верхнем углу. Это позволило MyTest запустить устройство, избавившееся от ошибки.

Я дважды имел эту проблему после изменения некоторых плагинов build.gradle и зависимостей.

Просто отключив и снова включив Android Studio, я исправил ее для меня (версии 2.1.2 и 2.2).

Все ответы –

Убедитесь, что у исходных наборов есть зарегистрированный тестовый каталог.

 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' } 

Просто поставив решение, которое сработало для меня, это нужно попробовать, если вы настраиваете среду в первый раз:

Для окон: 1) в переменных среды добавить новые «системные переменные» ANDROID_SDK_HOME = D: \ Program Files \ android-sdk-windows (выберите свой домашний каталог android sdk)

2) изменить системные переменные Path, добавить «% Android_SDK_HOME% \ tools;»