0

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 を使用して空の新しい Android アプリを作成しました。

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();
    }
}

このプロジェクトには、rest-assured-2.2.0.jar (正しいスペル) の 1 つの参照ライブラリしかありません。

それでも同じ問題が発生します

E/AndroidRuntime(13142): Caused by: java.lang.NoClassDefFoundError: com.jayway.restassured.internal.ResponseParserRegistrar

編集

rest-assured-2.3.0.jar (新しいバージョン) に変更し、json-schema-validator-2.3.0.jar を追加しても、依存関係の大きなリストは修正されませんでした。ランタイム クラスパスを見つけようとしましたが、ADTのメニューで見つかりません。

4

2 に答える 2

0

Look NoClassDefFoundError は、Java 仮想マシンまたは ClassLoader インスタンスが (通常のメソッド呼び出しの一部として、または new 式を使用した新しいインスタンスの作成の一部として) クラスの定義をロードしようとしたときにスローされ、クラスの定義がロードできなかった場合にスローされます。見つけられた。

上記で MAVEN プロジェクトを使用しているため、pom.xml に rest-assured-2.2.0.jar の依存関係を追加していない可能性があります。

また、Eclipse RCP または Eclipse プラグインのいずれかを構築している場合。

はいの場合、rest-assured-2.2.0.jar をプラグインの依存関係に配置する必要があります。plugin.xml の Runtime に移動し、rest-assured-2.2.0.jar をクラスパスに配置します。

さらに、クロスチェックとして、どこでも使用したスペル名が同じであることを確認してください。

于 2014-01-23T16:35:52.333 に答える