Android proguard和库项目

时间:2013-02-07 16:27:54

标签: android proguard

proguard用这样的消息杀了我:

“[proguard]警告:类[facebook / bin / classes / com / facebook / internal / FileLruCache $ StreamHeader.class]意外包含类[com.facebook.internal.FileLruCache $ StreamHeader]”

,最后的警告是:

  

[proguard]警告:错误命名的文件中有332个类。   [proguard]您应该确保所有文件名都对应   他们的班级名称。 [proguard]目录层次结构必须   对应于包层次结构。 [proguard]如果你   不介意提到的课程没有写出来,[proguard]
  你可以尝试使用'-ignorewarnings'选项来运气。

对我来说,我没有使用proguard调整我正在使用的图书馆项目(比如facebook)。

我真的不想混淆lib项目,而是行

  

-keep class com.facebook。** {*; }

     

-keep interface com.facebook。** {*; }

不做这个伎俩。

你可以在那个上启发我吗? 感谢

2 个答案:

答案 0 :(得分:0)

(CFR)。 ProGuard手册>疑难解答> Warning: class file ... unexpectedly contains class ...

您的配置似乎包含-injars选项,该选项不指向包和类的根目录(... / facebook / bin / classes)。

但是,标准的Android构建过程已经为您指定了所有必需的-injars选项,因此您不应添加任何选项。

答案 1 :(得分:0)

好的,我在proguard配置文件中使用了许多-dontwarn选项。

另外,我不会混淆我主包中没有的任何东西(-keepclass!com.yyy。** {*;}和keepinterface)。这看起来效果很好。