我正在开发我的 Android 应用程序。
然后我通过以下方式启用和配置混淆器:
第 1 步。启用混淆器:
在 project.properties 我有:
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
我还尝试了以下方法:
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
proguard.config=proguard.cfg
第 2 步。配置混淆器:
在 proguard.cfg 我有:
-assumenosideeffects class android.util.Log { *; }
我认为上面的配置应该删除所有日志。
但是当我在 target/
文件夹下安装 APK 并运行我的应用程序时,我仍然可以在 logcat 控制台中看到我的所有日志消息。为什么?
最佳答案
您应该使用 project.properties 中的第一行:
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
然后您应该将这些行添加到您的 proguard-project.txt(不是已弃用的 proguard.cfg):
-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(...);
}
只有当文件不包含 -dontoptimize 时,这些选项才有效。
Ant 和 Eclipse 从 project.properties 中获取设置。 Gradle 和 Maven 需要在 build.gradle 和 pom.xml 中分别指定配置文件的等效设置。
类似问题及答案:
关于android - 我的日志消息未使用混淆器配置删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22714626/