1

Android テスト プロジェクトを作成し、JMOCK を使用したいと考えています。プロジェクトのクラスパスに次のjarを含めます

  • amcrest-all-1.1.jar
  • jmock-2.5.1.jar
  • jmock-junit4-2.5.1.jar
  • junit.jar
  • objenesis-1.0.jar

コンパイルするまで、次のエラー メッセージが表示されます。

[2012-07-06 17:14:40 - mockTest] Dx ... at バイトコード オフセット 0000001b locals[0000]: Lorg/hamcrest/generator/qdox/parser/impl/JFlexLexer; locals[0001]: I locals[0002]: [C locals[0003]: [C locals[0004]: [I locals[0005]: [I locals[0006]: locals[0007]: locals[0008]: locals [0009]: locals[000a]: locals[000b]: locals[000c]: locals[000d]: locals[000e]: locals[000f]: locals[0010]: stack[top0]: [B ...whileブロック 001b の作業 ...メソッド yylex:()I の作業中 ...yylex ()I の処理中 ...org/hamcrest/generator/qdox/parser/impl/JFlexLexer.class の処理中

[2012-07-06 17:14:40 - mockTest] Dx 1 エラー。中止 [2012-07-06 17:14:40 - mockTest] エラー 1 で失敗した Dalvik 形式への変換

何が問題ですか?クラスパスに間違ったjarがありますか?

4

2 に答える 2

0

JAR同じパッケージ名を持つものが含まれているようですか?Android の依存関係で、すべての jar を開き、すべての jar に固有のパッケージがあることを確認します。

于 2012-07-06T13:31:34.427 に答える
0

問題は、JMock が動的バイトコード生成を使用して動作することですが、Dalvik はそれを行うことができません。動的バイトコード生成は、Dalvik でサポートされていない JVM バイトコードにコンパイルされます。したがって、変換時のエラー。

残念ながら、これは Android で JMock を使用できないことを意味します。テストのために JMock が必要な場合は、JVM でそれらのテストを実行する必要があります。

于 2012-07-06T13:29:32.913 に答える