android - 我的日志消息未使用混淆器配置删除

标签 android proguard

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

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

第 1 步。启用混淆器:

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.cfg 我有:

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

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

但是当我在 target/ 文件夹下安装 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 中分别指定配置文件的等效设置。

类似问题及答案:

关于android - 我的日志消息未使用混淆器配置删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22714626/

相关文章:

android - 使用 ProGuard 后在 Android 中找不到应用程序类

android - 更新到 Google Play 服务 11.8.0 后 Proguard 不工作

android - 无法使用 proguard 构建发布 apk

android - 上下文操作栏强制溢出

Android:传递给 AESObfuscator 的随机 SALT 字节是否需要保持不变?

android - 如何让 adb remount 工作?

android - Xamarin 执行 logcat 命令并将结果读取到字符串

android - 尽管使用 -keepclasseswithmembernames,Proguard 仍然混淆了类

java - Spring 应用程序的混淆值得尝试吗?

java - 如何模拟 Google API AndroidPublisher 请求