Я немного новичок в Android и много часов борюсь за то, как включить в тестовый проект Hamcrest. Код выглядит так, как будто он должен запускаться в Eclipse, без ошибок. Но когда я запускаю тест, классы Hamcrest не загружаются. Я получаю «NoClassDefFoundError: org.hamcrest.Matchers».Как использовать сочетания Hamcrest с jUnit на Android
Я провел последние 3 часа, просматривая форумы, полагая, что кто-то столкнулся с этим раньше, но не повезло. Я должен делать что-то глупое, так как среда IDE может видеть классы, но среда выполнения не работает.
Вот исходный тест:
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import org.hamcrest.Matcher;
import android.test.InstrumentationTestCase;
public class AppDescLoaderTest extends InstrumentationTestCase {
public void testHamcrest() {
assertThat(3, equalTo(3));
}
}
Я попытался добавить Hamcrest-все-1.2.jar как библиотека и как внешняя баночка. Тот же результат в обоих направлениях, код отлично выглядит в среде IDE, но не загружает классы во время выполнения.
Моя теория заключается в том, что hamcrest.jar не собирается с файлом .apk, и поэтому его классы не загружаются. Если это так, как мне заставить его перейти к андроиду вместе с файлом .apk?
Это сработало. Я также должен был указать ссылку на банку как внешнюю банку, или IDE не увидит классы. Теперь я получаю «Преобразование в формат Dalvik с ошибкой 1» –
@wannabetester: «Я также должен был указать ссылку на банку как внешнюю банку, или среда IDE не увидит классы». - это говорит о том, что вы не используете версию средств разработки R17. Удалите ссылку в качестве внешнего JAR. Щелкните правой кнопкой мыши проект, выберите «Путь сборки»> «Настроить путь сборки», перейдите на вкладку «Библиотеки», нажмите кнопку «Добавить JARs ...» (обратите внимание, * не * Добавить внешние JAR ...), найдите JAR внутри вашего проекта ' libs/'и добавьте его. – CommonsWare
Хорошо, я удалил файл jar из пути сборки в целом, и среда IDE теперь распознает .jar просто потому, что находится в папке/libs. По-видимому, все, что мне нужно было сделать, это обновить IDE, чтобы перепроверить каталог/libs. Тем не менее, я все еще получаю ошибку Dalvik. Я считаю, что есть другие сообщения об этой проблеме. Если вы знаете решение, пожалуйста, передайте его. Тем временем я постараюсь это найти. –