2012年1月19日木曜日

【Android】Proguard で『error conversion to Dalvik format failed with error 1』

Android で Proguard を使い、リリース用APK作成時に出たエラー。
error conversion to Dalvik format failed with error 1

これの対処のため、検索していると

・EclipseのClean
・project.propertiesのSDK設定が合ってない
・SDKが2重に読み込まれている
・SDKの読込順序が間違っている
・Proguardのbatの命令を %1 %2 %3 のように変える
・Proguardを更新する(現在 4.7時点)

のように対処方法が書いてあったんですが、
全部試しても無理でした。

そしてもっと調べていたら英語のページに

http://stackoverflow.com/questions/6605971/android-sdk-tools-revision-12-has-problem-with-proguard-error-conversion-to

The only solution i've found to this problem is to change, in proguard.cfg

-optimizationpasses 5

to

-optimizationpasses 2

と書いてありました。
proguard.cfg を直してみるとそれでリリース用APKが作成できました。

調べると、 optimizationpasses は最適化回数らしく、
たぶんですが、proguard をどれぐらいの強さでかけるか、ということだと思います。

5 から 2 に落としたことでうまくAPKはできたのですが、
難読化は弱くなっているのでは、、と思います。

またわかればブログに書きたいと思います。