Android 中的 ProGuard 不起作用。(不混淆)

Posted

技术标签:

【中文标题】Android 中的 ProGuard 不起作用。(不混淆)【英文标题】:ProGuard in Android is not working.(not obfuscating) 【发布时间】:2014-11-11 06:03:12 【问题描述】:

我正在尝试使用 ProGuard 混淆我的简单 HelloWorld 项目(我刚刚创建的)。

配置文件如下。

[project.properties]

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

target=android-20

[proguard-project.txt]

没有有效的。所有的行都被注释了。

最后,我通过菜单 File - Export - Export Android Application 创建了签名的 apk 文件, 使用新密钥。

为了确保 apk 被正确混淆,我解压缩 apk 并反编译 classes.dex 以查看内部类文件。但根本没有混淆。 MainActivity.java 中的所有函数名称都是 还是一样。

我错过了什么?

谢谢。

【问题讨论】:

我发现它没有被混淆。默认 MainActivity.java 似乎没有被混淆。在我添加了名为 Testit.java 的新类之后,它希望被混淆了。 我对 Proguard 使用哪些文件来配置自己感到有些困惑。在 sdk proguard 目录中还有一个 proguard-android.txt 和一个 proguard-android-optimize.txt。项目目录下的proguard-project.txt被注释掉了。欢迎提供当前文件结构的教程概述。 Android 开发文档谈到了一个不存在的 proguard.cfg 文件。 【参考方案1】:

查看http://developer.android.com/tools/help/proguard.html 的“启用 ProGuard”部分,了解 ProGuard 如何确定要使用的配置文件。仔细查看为 Eclipse 构建与 Android Studio(或 Gradle)构建指定文件的不同方法。随 SDK 提供的 ProGuard 配置文件是简单的起点(示例),几乎可以肯定不会完全按照您的意愿行事。您应该将它们复制到适当的位置,并根据您的特定需要进行更改。

【讨论】:

以上是关于Android 中的 ProGuard 不起作用。(不混淆)的主要内容,如果未能解决你的问题,请参考以下文章

Proguard Printmapping 在 Android Studio 2.0.0(和 2.1.0)中不起作用

启用 ProGuard 规则时 Gson 解析不起作用

为啥使用“minifyEnabled true”时 Proguard 不起作用?

在 proguard 之后,点击在发布 apk 中不起作用

使用 ProGuard 时不起作用

使用 Android Studio 签署 APK 时出现 Proguard 错误