我的日志消息不会通过 proguard 配置被删除

2023-12-31

我正在开发我的 Android 应用程序。

然后我通过以下方式启用并配置混淆器:

步骤1.启用proguard:

In 项目.属性 I have:

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:

In 混淆器配置文件 I have:

-assumenosideeffects class android.util.Log { *; }

我认为上述配置应该删除所有日志。

但是当我在下面安装APK时target/文件夹并运行我的应用程序,我仍然可以在 logcat 控制台中看到所有日志消息。为什么?


你应该使用你的第一行项目.属性:

proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt

然后您应该将这些行添加到您的proguard-project.txt (not已弃用的 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(...);
}

这些选项仅在文件确实存在时才有效not包含-dontoptimize。

Ant 和 Eclipse 从 project.properties 中获取设置。 Gradle 和 Maven 需要分别在 build.gradle 和 pom.xml 中指定配置文件的等效设置。

类似问题及解答:

  • 如何配置我的 proguard-project.txt 文件以仅删除日志 https://stackoverflow.com/a/14140044/492694
  • 使用 proguard 删除 Log 调用 https://stackoverflow.com/a/13327603/492694
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的日志消息不会通过 proguard 配置被删除 的相关文章

随机推荐