android – 我的日志消息不会被proguard配置删除

我正在开发我的 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

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...