2013年6月22日土曜日

mockito を使ったテストでの java.lang.NoClassDefFoundError: org.mockito.Mockito を修正する

mockito を使ったテストプロジェクトでは、bin/dexedLibs フォルダに mockito や dexmacker の jar ができている必要があります。

「Android で mockito を使う : 準備編」 の手順では、libs フォルダに mockito や dexmaker の jar をコピーすると、次のテスト実行に bin/dexedLibs フォルダに mockito や dexmacker の jar ができます。

git リポジトリに Android プロジェクトを入れる場合、bin フォルダは入れないようにするでしょうから、git clone しただけだと次のテスト実行に bin/dexedLibs フォルダに mockito や dexmacker の jar ができず、テスト時に java.lang.NoClassDefFoundError: org.mockito.Mockito エラーが発生します。

この現象は mockito だけでなく、libs に jar を入れているプロジェクトなら起こりえます。

これを修正するには
  • テストプロジェクトの Properties で [Java Build Path] → [Order and Export] で Android Private Libraries のチェックボックスをチェック
  • テストプロジェクトを clean
(mockito と dexmacker の jar は libs フォルダに入ったときに Android Private Libraries に含まれるようになります)

をします。

こうすると次のテスト実行に bin/dexedLibs フォルダに mockito や dexmacker の jar ができ、java.lang.NoClassDefFoundError: org.mockito.Mockito エラーが起こらなくなります。



0 件のコメント:

コメントを投稿