Android 開発での Proguard 設定


先日、署名付きパッケージをエクスポートしようとしたところ、Progurd から多量の「警告」が出現してエクスポート不能になってしまいました。

あらためてテスト用のプロジェクトで再現すると、以下の様なエラーです。
Proguard error log
サポートライブラリがらみの「警告」のようですが、実際には、サポートライブラリの導入の有無に関係なく発生するようです。

試行錯誤の結果、Proguard の設定方法を変更することで解決することがわかりました。

[従来の設定方法]

  1. プロジェクト直下の project.properties を開く。
  2. ファイルの末尾に、proguard.config=proguard.cfg を記述する。
  3. proguard.cfg に、Proguard マニュアルの Examples を参照して設定を記述する。

[新しい設定方法]

  1. project.properties を開き、コメントアウトされている proguard.config の指定を有効にし、これまでの指定をコメントアウトする。proguard.config=${sdk.dir}toolsproguardproguard-android.txt:proguard-project.txt
    #proguard.config=proguard.cfg
  2. プロジェクト直下の proguard-project.txt (最新の環境でプロジェクトを作成すると自動生成される。もしなければ作成する。) に、プロジェクト独自の指定を(もしあれば)追加する。
    ※自動生成された proguard-project.txt 内の定義は全てコメントアウトされているので、必要なら有効にする。
  3. (念のため) proguard.cfg を削除する。

「新しい設定方法」では、Android-SDK ディレクトリ内にある proguard-android.txt と、プロジェクト直下の proguard-project.txt で定義を行います。前者には、Android プロジェクトで推奨される定義が記述されています。そのため、SDK と Proguard の定義が連動するようになって、問題が起こりにくくなると思われます。オリジナルの設定は proguard-project.txt で定義することで、管理がしやすくなりました。

メールアドレスが公開されることはありません。