【问题标题】:Remove Logging with Proguard使用 Proguard 删除日志记录
【发布时间】:2015-03-23 15:52:06
【问题描述】:

我试图删除日志语句但没有成功。对同一问题的其他 SO 答案是指 Eclipse 或旧的 Android Studio IDE (Intellij)。

build.gradle

buildTypes {
release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
...

proguard-rules.pro

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
    public static *** i(...);
    public static *** w(...);
    public static *** e(...);
}

从已签名的app-release.apk

中获取源代码后仍然可以看到日志语句

【问题讨论】:

    标签: android proguard logcat


    【解决方案1】:

    build.gradle 中的更改,将默认的 proguard-android.txt 替换为 proguard-android-optimize.txt把戏。

    buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    ...
    

    注意:gradle中默认的proguard设置是proguard-android.txt

    【讨论】:

    • 这真的拯救了我的一天!这实际上是在这里(间接)提到的:developer.android.com/studio/build/shrink-code.html#shrink-code
    • 使用 proguard-android-optimize.txt 后出现错误 - java.lang.IllegalArgumentException: Form-encoded method must contain at least one @Field.
    • 你的改变是什么?这段代码看起来和问题一模一样......
    • @JohnathanLogan 'proguard-android.txt' 到 'proguard-android-optimize.txt'
    猜你喜欢
    • 2014-01-26
    • 1970-01-01
    • 2012-10-24
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多