我正在使用第三方 .aar 项目,他们已经在 aar 项目中启用了 proguard。在我的应用程序项目中,我也启用了 Proguard,它给了我错误。
那么,我是否需要将他们的(.aar 项目)专业保护规则包含在我的 proguard 配置文件中,或者还有其他可能性吗?
我在博客和帖子中读到,最好的方法是包含没有 proguard 的 .aar 项目,然后在 aar 和整个应用程序项目上运行 proguard。
如果我在应用程序上运行proguard,它会影响导入的库(已经保护)的代码吗?
那么,我是否需要将他们的(.aar 项目)proguard 规则包含在我的 proguard 配置文件中,或者还有其他可能性吗?
引用文档:
您可以通过将包含其 ProGuard 指令的 ProGuard 配置文件添加到库中来启用库上的代码收缩。构建工具将此文件嵌入到为库模块生成的 AAR 文件中。将库添加到应用程序模块时,库的 ProGuard 文件将追加到应用程序模块的 ProGuard 配置文件 (proguard.txt)。
因此,如果库模块defaultConfig
中有consumerProguardFiles 'lib-proguard-rules.txt'
(请参阅文档),原则上,这些规则将自动应用。
我在博客和帖子中读到,最好的方法是包含没有 proguard 的 .aar 项目,然后在 aar 和整个应用程序项目上运行 proguard。
AFAIK,这是典型的计划。因此,AAR被单独保留,在应用程序上应用ProGuard。
如果我在应用程序上运行proguard,它会影响导入的库(已经保护)的代码吗?
AFAIK,库的代码不应通过 ProGuard 运行。