ADT 17 以降、gen フォルダーに DEBUG 定数を持つ BuildConfig クラスがあります。アプリケーションをエクスポートすると、ADT によって値が自動的に変更されるため、コードでこの定数をよく使用します。
ただし、Proguard を使用すると、これは機能しなくなります。たとえば、次のスニペットがあります。
if (!BuildConfig.DEBUG) {
ACRA.init(this);
}
Proguard は DEBUG が true であることを認識し、このスニペットを完全に削除してアプリを縮小します。その後、ADT は DEBUG 定数を変更しますが、これでは遅すぎます。
私が知っている唯一の解決策は、独自の DEBUG 定数を作成し、手動で再度変更することです。しかし、ADT の機能はとても気に入っています。より良い解決策を知っていますか?
前もって感謝します。
編集:
回避策があります。実行時に初期化される独自の DEBUG 定数を作成します。
debug = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE));
Application クラスの onCreate メソッドで、最初にこの変数を作成します。これは回避策であり、機能しますが、問題の解決策ではありません。