プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

【Android】 ADT r15-> r20 にアップデートしたら実行時にエラー

別記事に書いたようにandroidの開発環境をADT r15 から r20 にアップデートしました。さっそく、既存のプロジェクトをエミュレータ上で実行させたら、VerifyError などというものが発生しました。プロジェクトの設定もソースコードも一切触ってないのに不思議です。

Logcatを見てみるとエラーの前に

VFY: unable to find class referenced in signature (Lorg/jsoup/nodes/Document;)

のようなワーニングが表示されています。外部ライブラリのクラス(JSoup)なので、何かありそうだと思い調べると、ADT r17 でライブラリの設定方法が変更になったようです。

対応の仕方は2通りほどあるようです。

今までは、ライブラリを assetsフォルダの下に入れていました。前者の方法については、ADT 17のリリースノートでも触れられています( http://developer.android.com/intl/ja/tools/sdk/eclipse-adt.html )。

なので、今回は前者の方法をとり、jar ファイルはlibs の下に配置し、不必要なライブラリ設定は削除することにしました。

 

未解決の問題

実は、libs 配下にjarファイルを配置した場合、ソースコードやjavadocを参照できなくなるという問題があるようです。

ADT 20 でこの問題は解決されているということなのですが、手元の環境で試したところ、どうもうまくいきません。同じように、3rd-partyライブラリでうまくいかない、としている人もいます。 http://code.google.com/p/android/issues/detail?id=27490#c37

結局、真の原因は不明のままですが、当面javadocの参照ができない状態で我慢することにします。