APKのエクスポート中にプロガードを使用する場合、簡単な回避策を提案したいと思います。
Proguardは、リリースモードで特定の関数への呼び出しを削除する方法を提供します。デバッグログの呼び出しは、の次の設定で削除できますproguard-project.txt
。
# Remove debug logs
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
そしての最適化設定project.properties
。
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
これにより、@ Jeremyfaがポイントしたデバッグログに渡される不要な文字列計算を気にする必要がなくなります。計算はリリースビルドで削除されました。
したがって、BuildConfig.DEBUGの回避策では、次のようにproguardの同じ機能を使用します。
public class DebugConfig {
private static boolean debug = false;
static {
setDebug(); // This line will be removed by proguard in release.
}
private static void setDebug() {
debug = true;
}
public static boolean isDebug() {
return debug;
}
}
そして、以下の設定proguard-project.txt
。
-assumenosideeffects class com.neofect.rapael.client.DebugConfig {
private static *** setDebug();
}
Build Automatically
これはビルダーの個々のIDE設定に依存しないが、開発者間で共有されるコミットされたファイルとして維持されるため、オプションを無効にするよりもこれを使用することを好みます。