我正在尝试为我的Android项目设置proguard。我的应用程序项目中几乎没有代码,但引用了一个库项目,该项目有绝大部分的代码和任何其他外部jar包。也就是说,我不确定如何设置proguard以考虑这一点。现在我的proguard配置文件只是来自ProGuard网站的Android示例。我一直在搜索,但没有找到关于使用库项目而不是jar包的proguard的文档或资料。我对proguard很陌生,所以任何指导都将是很好的。谢谢。
对我来说,在库项目中指定proguard设置(例如不应混淆哪些库文件)是有意义的。我发现我还需要在我的应用程序中包含来自我的库模块的proguard配置。为此,我将以下内容添加到我的库的build.gradle
中的defaultConfig
部分。
apply plugin: 'com.android.library'
android {
defaultConfig {
consumerProguardFiles 'proguard-rules.pro'
}
}
然后,我配置了我的库模块中的 proguard-rules.pro 文件,以保留重要序列化类的名称。
编辑
正如@BornToCode所指出的那样,一篇不同的答案(最初发布在这里)更好地解释了库项目是如何被Proguard处理的。此外,这个问题比我最初回答时链接的问题更受关注并具有更高的声望。引用:
仅由库项目本身不运行ProGuard,因此它们不使用任何配置。
应用程序项目对整个代码库进行混淆,包括任何已引用的库,因此它们需要适当的配置来管理应用程序代码和库代码。
旧回答(并没有错,只是可能不是最好的方法)
库项目更多地是在Eclipse中将项目与其jar文件链接的一种方便方式。当您构建项目时,库项目的唯一可见组件是jar文件。
如果您想混淆该jar文件,请查看此帖子: