2011-11-09

Conversion to Dalvik format failed with error 1 再来



Androidでrelease用にビルドをしたときに限って、「Conversion to Dalvik format failed with error 1」というエラーになる問題が再発生した。以前にこのエラーに見舞われたときは、コンソールで、eclipse.exe -clean という具合に起動オプション付きでeclipseを立ち上げたら解決したが、今回はそれでも解決しなかった。プロジェクトをクリーンしたりFix Project Propertiesを実行したり色々ためしたが駄目だった。

気になったのは、debugのときは正常にビルドできるのに、releaseモードで失敗するということだ。これは何故だろうと思って調べたら、proguardを使っているのがエラーの原因だとわかった。proguardはreleaseモードでのみ動作するため、ここで失敗しているのだ。

proguard.cfgに、名前を書き換えないクラスなどを指定すれば、おそらく正常にビルドできるはず。たとえば、layout.xml内で参照しているクラスなどは、名前を書き換えてはいけないクラスに相当する。
だが困ったことに、このプロジェクトはandroid-support-v4.jarを参照していた。これを参照する場合に、proguard.cfgをどのように記述したらいいのか、さっぱり分からなかった。結局挫折して、proguardを使うのをあきらめた。