【发布时间】:2015-01-14 23:42:53
【问题描述】:
我这几天都面临着一个非常奇怪的问题......
我有一个带有两个模块的 Gradle 应用程序,一个主模块和一个库模块。
- 在这两个模块中,我都声明了一个正确的 proguard-rules.pro 文件路径
- 在两个 .gradle 文件中我都将 minifyEnabled 设为 true
这是第一个问题:即使库中的 minifyEnabled 为 false,它也会被混淆。它根本没有效果,似乎取决于主模块的设置。我使用 proguard 已经有一段时间了,我从来没有遇到过这样的行为。
此外,图书馆的 proguard-rules.pro 似乎完全被忽略了。我在那里声明什么都没关系,它没有被使用并且结果总是相同的(总是反编译以查看结果)。它被默认设置混淆了。
我使用了一个无效的 proguard 文件名来查看文件是否被触摸过,确实存在错误名称的错误,它还抱怨 proguard 文件中的语法错误......
我不知道这是否与 Android Studio 的更新有关,因为它还建议我使用“minifyEnabled”而不是“runProguard”。
如何管理 proguard 也可以使用库的 proguard-rules.pro?
编辑:
我制作了一个示例项目来澄清我的问题
我的库的 proguard 配置
我的图书馆的 gradle:
最后是我总能得到的结果。我在 proguard 配置中排除/包含什么并不重要
如您所见,proguard 规则在主模块上运行良好。它做它应该做的。但它总是将我的图书馆完全混淆为 a.a....
它还完全删除了图书馆的活动,这根本不应该发生
【问题讨论】:
标签: android android-studio module proguard android-library