我对 Android 有点陌生,并且一直在努力研究如何在我的测试项目中包含 Hamcrest 匹配器。该代码看起来应该在 Eclipse 中运行,没有指示错误。但是当我运行测试时,Hamcrest 类没有加载。我得到“NoClassDefFoundError:org.hamcrest.Matchers”。
我花了过去 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-all-1.2.jar 添加为库和外部 jar。两种方式的结果相同,代码在 IDE 中看起来不错,但无法在运行时加载类。
我的理论是 hamcrest.jar 不与 .apk 文件一起使用,这就是它的类没有被加载的原因。如果这是真的,我如何将它与 .apk 文件一起推送到 android?