我正在开发我的
Android应用程序.
然后我启用&配置proguard:
步骤1.启用proguard:
在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:
在proguard.cfg我有:
-assumenosideeffects class android.util.Log { *; }
我认为上面的配置应该删除所有日志.
但是当我在目标/文件夹&下安装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中指定配置文件的等效设置.
类似的问题和答案:
> How to config my proguard-project.txt file to remove just Logs
> Removing Log call using proguard