微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 仅使用Proguard禁用日志记录和缩小资源

的build.gradle:

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

我不希望Proguard优化或混淆我的代码,因为它给我带来了很多麻烦.我只想删除日志调用并启用缩小未使用的资源.

proguard-rules.pro:

-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int w(...);
    public static int d(...);
    public static int e(...);
}

将上面的代码添加到proguard-rules.pro只有在我将getDefaultProguardFile(‘proguard-android.txt’)设置为(‘proguard-android-optimize.txt’)时才能工作

但是通过将其设置为proguard-android-optimize.txt将启用我不想要的优化标志.

那么如何在没有Proguard对我的代码进行任何缩小或优化的情况下禁用日志记录和缩小资源呢?

解决方法:

您应该能够通过仅启用特定的Proguard优化来实现这一点,这些优化可能会影响到它们的影响.它依赖的两个是:

> code / removal / simple:基于简单的控制流分析删除代码.
> code / removal / advanced:根据控制流分析和数据流分析删除代码.

您可以阅读有关不同优化选项here的更多信息.所以这样的事情应该有效:

proguard-rules.pro

-optimizations code/removal/simple,code/removal/advanced
-dontobfuscate
-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int w(...);
    public static int d(...);
    public static int e(...);
}

的build.gradle

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐