我正在开发我的 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(使用前将#替换为@)