JUnit NoClassDefFoundError с файлом JAR - PullRequest
1 голос
/ 16 мая 2011

Я разработал приложение для Android, для которого сейчас создаю юнит-тесты. Я создал второй проект (с суффиксом «.test» в качестве имени проекта) и выбрал исходный проект в качестве цели.

Мой оригинальный проект включает несколько внешних файлов JAR.

Я не могу получить доступ ко всем методам из моих тестов без ссылки на эти файлы JAR в пути сборки моего тестового проекта. В качестве примера я получаю эту ошибку:

The type com.j256.ormlite.android.apptools.OrmLiteBaseService cannot be resolved. It is indirectly referenced from required .class files

Хотя тесты работают правильно (если нет доступа к этим методам).

Если я включу необходимые JAR-файлы в путь сборки тестового проекта, я получу эту ошибку, однако:

05-16 15:59:03.732: INFO/TestRunner(1222): java.lang.NoClassDefFoundError: sw6.visualschedule.persistence.DatabaseHelper
05-16 15:59:03.732: INFO/TestRunner(1222):     at sw6.visualschedule.test.ScheduleActivityTest.setUp(ScheduleActivityTest.java:22)
05-16 15:59:03.732: INFO/TestRunner(1222):     at junit.framework.TestCase.runBare(TestCase.java:125)
05-16 15:59:03.732: INFO/TestRunner(1222):     at junit.framework.TestResult$1.protect(TestResult.java:106)
05-16 15:59:03.732: INFO/TestRunner(1222):     at junit.framework.TestResult.runProtected(TestResult.java:124)
05-16 15:59:03.732: INFO/TestRunner(1222):     at junit.framework.TestResult.run(TestResult.java:109)
05-16 15:59:03.732: INFO/TestRunner(1222):     at junit.framework.TestCase.run(TestCase.java:118)
05-16 15:59:03.732: INFO/TestRunner(1222):     at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
05-16 15:59:03.732: INFO/TestRunner(1222):     at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
05-16 15:59:03.732: INFO/TestRunner(1222):     at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
05-16 15:59:03.732: INFO/TestRunner(1222):     at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)

Как разрешить ошибку NoClassDefFoundError? Я действительно запутался, поскольку он ссылается на класс внутри моего проекта и работает, когда внешний JAR-файл не включен в путь сборки.

Я использую Eclipse на OSX, если это имеет какое-либо влияние.

1 Ответ

1 голос
/ 17 мая 2011

Экспортируйте эти библиотеки в тестовый проект, но отошлите их в тестовый проект

...