山椒は小粒でもピリリと辛い

2013/02/06

[Android]UnitTest +Robotium + Library jars

■ 事象

Robotiumを試そうと既存のプロジェクトに対するテストプロジェクト を作成。

その後、Exampleを元にテストをしようとしたのだけれど

java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
とか、警告を受け、動作しない事象に遭遇。

■ 補足

robotiumは簡単かつ強力なブラックボックステストがかけちゃうツール(意訳)
アクティビティをまたいだテストや
スクリーンショットの撮影等、
そこそこ便利な機能が揃っています

■ 対処1

BuildPath上で必要となるlibraryのExport スクリーンショット 13 02 05 10 08
スクリーンショット 13 02 05 10 10 で、動かず。
かなり試行錯誤した挙句
BuildPathのOrder&Exportで順番を何気なく動かしてみる
すると、動いたり、動かなかったりする事象が発生。

■対処2

原点に戻って、libsにrobotiumのjarを設置。
すると動作。
どうやら、libs以外にjarをおいた場合の挙動がすこぶる怪しい。
また、Eclipse上では動作を確認できたけど、IntelliJ IDEA12の ほうでは未だ

java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation が発生中。引き続き調査中。

Eclipseの方は

classpathによって
com.android.ide.eclipse.adt.ANDROID_FRAMEWORKという名前の
Android Dependenciesが定義されている(libs内のJarが半自動的にAndroid Dependenciesに含まれていく)

ココらへんの処理をIntelliJでうまく補完できれば、動作するはずなんだけれども…