我已经将rest-assured-2.2.0.jar放在我的Eclipse工作区中(对于一个Android应用程序),并将它作为参考库添加到项目的构建路径中。然后我进口了:
import com.jayway.restassured.RestAssured;
import static com.jayway.restassured.RestAssured.*;
import static com.jayway.restassured.matcher.RestAssuredMatchers.*;
import static org.hamcrest.Matchers.*;但是如果我做了RestAssured.given();我得到了Caused by: java.lang.NoClassDefFoundError: com.jayway.restassured.internal.ResponseParserRegistrar
如果我查看jar文件,我可以在正确的位置找到一个ResponseParserRegistrar.class文件,因此它确实存在。
如果我试图进口它,它不会抱怨:
import com.jayway.restassured.internal.ResponseParserRegistrar;但它仍然给出了错误。
我忘了什么或者做错了什么?
编辑
现在,我用以下MainActivity创建了一个空白的新安卓应用程序:
package com.example.testrestassured;
import com.example.testrestassured.R;
import android.app.Activity;
import android.os.Bundle;
import com.jayway.restassured.RestAssured;
import com.jayway.restassured.RestAssured.*;
import com.jayway.restassured.internal.ResponseParserRegistrar;
import com.jayway.restassured.matcher.RestAssuredMatchers.*;
public class MainActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
RestAssured.given();
}
}该项目只有一个参考库:放心-2.2.0.jar(正确拼写)。
但我还是遇到了同样的问题
E/AndroidRuntime(13142): Caused by: java.lang.NoClassDefFoundError: com.jayway.restassured.internal.ResponseParserRegistrar编辑
更改为“放心”-2.3.0.jar(新版本)并添加json验证程序-2.3.0.jar和它的大量依赖项也没有修复它。我试图找到运行时类路径,但在ADT的菜单中找不到它。
发布于 2014-01-23 15:56:43
确保您没有超过一个版本的jar。这在使用Maven的项目中非常常见,因为父项目有旧版本的库。
如果您能告诉我们更多关于您的配置的信息,就更容易找到原因。
发布于 2014-01-23 16:35:52
如果Java或ClassLoader实例试图加载类的定义(作为普通方法调用的一部分或作为使用新表达式创建新实例的一部分),则会引发NoClassDefFoundError,但无法找到该类的定义。
现在,在上面,当您有MAVEN项目时,您可能还没有在pom.xml中添加您的放心-2.2.0.jar的依赖项。
如果您正在构建Eclipse或Eclipse插件。
如果是,您应该将“放心”-2.2.0.jar放在插件依赖项下。转到plugin.xml,运行时并在类路径中放置rest-2.2.0.jar。
另外,作为交叉检查,请检查您在任何地方使用的拼写名称都是相同的。
https://stackoverflow.com/questions/21313104
复制相似问题