-libraryjars对结果apk,proguard没有影响

时间:2014-03-18 09:41:37

标签: java android eclipse proguard

enter image description here

使用工具dex2jar和Java Decompiler我检查了两个版本的apk文件,它是在eclipse中使用proguard启用的。 apk的一个版本是使用此命令生成的,作为proguard-project.txt文件的一部分

  -libraryjars /libs/GraphView-3.1.1.jar

并且在apk的另一个版本中已将此行注释掉

在从apk转换为jar并查看它们之后查看生成的apk文件。两个apk文件都是混淆的,但它们完全相同。所以-libraryjars命令根本没有效果?为什么混淆代码在两种情况下完全相同?

相比之下,我使用其他修改制作了两个版本的apk文件,它们会产生不同的文件。例如,我将此行添加到proguard-project.txt文件

  -keep class com.example.proguardwithgson.MainActivity$TestObject { *; }

它改变了apk的结果代码,TestObject内部类不再被混淆,并且清晰可读。

如果-keep命令正常工作,为什么-libraryjars命令不执行任何操作?

1 个答案:

答案 0 :(得分:0)

Android构建过程已经为您指定了所有必需的-injars / -libraryjars / -outjars选项。您永远不应该在配置文件中指定它们;你只会收到很多关于重复课程的警告。

您可以在ProGuard手册中找到有关其用途的说明> Introduction