LoginSignup
33
31

More than 5 years have passed since last update.

Android Studio(Gradle)でproguard時にログのコードを消す方法

Last updated at Posted at 2014-08-13

EclipseからAndroid Studio移行ではまったところメモの後に発生した問題。

ログコードをproguard時に削除する

Eclipseでログコードをproguard時に削除していた。

随所にコードが散らばっているので今頃といえば今頃だけど、削除するコードはこんな感じ。

#-dontoptimize

-assumenosideeffects class android.util.Log {
    public static int v(...);
    public static int d(...);
    public static int i(...);
    public static int w(...);
    public static int e(...);
}

// カスタムロッガーの場合は全部消してしまう。
-assumenosideeffects class com.shiraji.Logger {
    <methods>;
}

で、それをEclipseではやっていたのだけど、いざ、Android Studioでやってみたら、ログが出力されてた。
デコンパイルしてソースみたらきっちりソース残ってた。

/Applications/Android Studio.app/sdk/tools/proguard/proguard-android.txt

ここにproguard-android.txtが存在していて、そこにはproguard-android-optimize.txtを使えという指示がある。
色々探しても使えばいいとだけしか記載されていなくて、どう使うのこれ?ってはまりました。

移行した直後ではこんな記載になっていました。

app/build.gradle
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'

getDefaultProguardFileの指定をproguard-android-optimize.txtに切り替えれば良いみたいです。

app/build.gradle
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt'

このデフォルトで指定された項目にないものをその次のパラメータで渡しているファイルに記載するのが普通みたいです。プロジェクト毎の指定をするためのものです。
問題にはならないのだけど、結構重複していたので、移行時に綺麗にしたほうがよいです。

そもそもEclipseのときのproguardの使い方が間違っていたのでは?という感じですが・・・。

string.xml/AndroidManifest.xmlの扱い方にもはまったのですが、ちょっと書く時間がないので、次回にします。

33
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
31