在gradle android build中使用progaurd生成jar文件

时间:2019-04-25 08:02:04

标签: android android-gradle build.gradle proguard android-proguard

通常,通过向progaurd提供-injars和-outjars,我们可以从-injars生成过滤的类的模糊jar文件。

在gradle android构建中是否有任何方法可以通过使用proguardFile属性从项目类组中生成过滤类的混淆jar文件。这些经过过滤的jar文件是gradle android build二进制文件的补充。

2 个答案:

答案 0 :(得分:0)

您可能必须在项目中创建一个新的库模块,然后重构代码,以将jar中所需的类移到新的库模块中。

查看此答案:https://stackoverflow.com/a/47444948/3501286

和这个:https://stackoverflow.com/a/19037807/3501286

答案 1 :(得分:0)

我通过以下方法实现了基于从单个库项目中选择的少量类文件生成单个混淆jar文件的要求。这些单独的jar文件是最终android二进制文件(即.aar文件)的补充。

调试: 1.在android构建期间,gradle将所有已编译的java文件移至/ build / intermediates / javac / debug / compileDebugJavaWithJavac / classes文件夹。

  1. 在proguard文件中,我给了-injars作为上面的文件夹,给了-outjars作为我的带有过滤器的自定义路径。

  2. 使用'proguardFile'属性,我已将proguard文件传递给build.gradle

  3. 使用-injars和-outjars指定的所有单个jar文件将被混淆,并将放置在-outjars路径中

例如:

在调试模式下:

-injars'D:\ projectname \ build \ intermediates \ javac \ debug \ compileDebugJavaWithJavac \ classes'(**。class)

-outjars'D:\ projectname \ build \ intermediates \ transforms \ proguard \ debug \ 1.jar'(com / ui / tab / TabWidget.class,com / ui / Tab .class )

-injars'D:\ projectname \ build \ intermediates \ javac \ debug \ compileDebugJavaWithJavac \ classes'(**。class)

-outjars'D:\ projectname \ build \ intermediates \ transforms \ proguard \ debug \ 1.jar'(com / ui / CollapsibleWidget.class)