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)中不起作用