woshidan's blog

そんなことよりコードにダイブ。

java.lang.VerifyErrorで検討したこと

今日作業してたらいきなり、java.lang.VerifyErrorという聞き慣れないエラーが出てきてびびった。

眺めていたのはこの辺。

blog.livedoor.jp

Android Studio 0.5.4 update causes Java.Lang.VerifyError - Stack Overflow

ライブラリのバージョンが実行時とビルド時で違う可能性があるというので、バージョン指定が曖昧だったライブラリについてバージョン指定をパッチバージョンまでかっちり指定。

その後、SupportLibraryのTintManagerが見つからない旨のエラーがAPI16以下で出ていて、65k問題に対応する前、マルチデックス対応を始める前まで出た覚えが無かったので、下記を参考にApplicationクラスで下記の記述を追加。

Building Apps with Over 65K Methods | Android Developers

stackoverflow.com

public void onCreate(Bundle arguments) {
    MultiDex.install(getTargetContext());
    super.onCreate(arguments);
    ...
}

これでビルドをやり直してなんとか。

TintManagerの件の方はそれを使っていない他の画面では動いていたのでひやひやした...。