我正在尝试使用 proguard 来删除我的所有日志: 我在 proguard-project.txt 中输入了以下行:
-assumenosideeffects class android.util.Log { *; }
我的 project.properties 看起来像这样:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
尽管如此,日志继续显示在我的应用程序中。我到底做错了什么?
最佳答案
您不应该指定“*”通配符,因为它包括像“Object#wait()”这样的方法。最好明确列出方法:
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
此选项仅在优化未被禁用时才相关,例如在 proguard-android.txt
中。您必须改为指定 proguard-android-optimize.txt
:
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
buildTypes {
releaseSomeBuildType {
...
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'your-proguard-file.pro'
}
}
关于android - 使用 proguard 删除日志调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218772/