java – 使用Proguard混淆ActionBarSherlock

前端之家收集整理的这篇文章主要介绍了java – 使用Proguard混淆ActionBarSherlock前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用proguard和ant来模糊我的 android应用程序(eclipse proguard永远不会工作,总是失败,错误1).但我正在获取文件…意外地包含类…警告所有地方和构建失败.我还尝试在proguard中使用-ignorewarnings选项.构建成功但我得到一个无法使用的包.

这是蚂蚁输出

  1. -post-compile:
  2.  
  3. optimize:
  4. [jar] Building jar: /home/binoy/git/Vibhinna/proguard/unoptimized.jar
  5. [java] ProGuard,version 4.8
  6. [java] Reading input...
  7. [java] Warning: class [classes/com/actionbarsherlock/R$array.class] unexpectedly contains class [com.actionbarsherlock.R$array]
  8. [java] Warning: class [classes/com/actionbarsherlock/R$attr.class] unexpectedly contains class [com.actionbarsherlock.R$attr]
  9. [java] Warning: class [classes/com/actionbarsherlock/R$bool.class] unexpectedly contains class [com.actionbarsherlock.R$bool]
  10. [java] Warning: class [classes/com/actionbarsherlock/R$color.class] unexpectedly contains class [com.actionbarsherlock.R$color]
  11. ....
  12. [java] Warning: class [classes/com/actionbarsherlock/R$xml.class] unexpectedly contains class [com.actionbarsherlock.R$xml]
  13. [java] Warning: class [classes/com/actionbarsherlock/R.class] unexpectedly contains class [com.actionbarsherlock.R].
  14. [java] Warning: class [classes/com/vibhinna/binoy/DetailsDialogFragment$1.class] unexpectedly contains class [com.vibhinna.binoy.DetailsDialogFragment$1]
  15. [java] Warning: class [classes/com/vibhinna/binoy/DetailsDialogFragment.class] unexpectedly contains class [com.vibhinna.binoy.DetailsDialogFragment]
  16. [java] Warning: class [classes/com/vibhinna/binoy/HoloAlertDialogBuilder.class] unexpectedly contains class [com.vibhinna.binoy.HoloAlertDialogBuilder]
  17. [java] Warning: class [classes/com/vibhinna/binoy/MiscMethods.class] unexpectedly contains class [com.vibhinna.binoy.MiscMethods]
  18. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$1$1.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$1$1]
  19. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$1$2.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$1$2]
  20. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$1.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$1]
  21. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$10.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$10]
  22. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$11.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$11]
  23. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$2.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$2]
  24. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$3.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$3]
  25. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$4.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$4]
  26. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$5.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$5]
  27. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$6.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$6]
  28. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$7.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$7]
  29. [java] Warning: class [classes/com/vibhinna/binoy/NewDialogFragment$8.class] unexpectedly contains class [com.vibhinna.binoy.NewDialogFragment$8]
  30. ....
  31. [java] Warning: class [classes/com/vibhinna/binoy/Preferences.class] unexpectedly contains class [com.vibhinna.binoy.Preferences]
  32. [java] Warning: class [classes/com/vibhinna/binoy/ProcessManager.class] unexpectedly contains class [com.vibhinna.binoy.ProcessManager]
  33. [java] Warning: there were 89 classes in incorrectly named files.
  34. [java] You should make sure all file names correspond to their class names.
  35. [java] The directory hierarchies must correspond to the package hierarchies.
  36. [java] If you don't mind the mentioned classes not being written out,[java] you could try your luck using the '-ignorewarnings' option.
  37. [java] java.io.IOException: Please correct the above warnings first.
  38. [java] at proguard.InputReader.execute(InputReader.java:133)
  39. [java] at proguard.ProGuard.readInput(ProGuard.java:197)
  40. [java] at proguard.ProGuard.execute(ProGuard.java:79)
  41. [java] at proguard.ProGuard.main(ProGuard.java:493)

我该如何解决

解决方法

确保您的proguard配置文件具有 recommended exclusions for ActionbarSherlock:
  1. -keep class android.support.v4.app.** { *; }
  2. -keep interface android.support.v4.app.** { *; }
  3. -keep class com.actionbarsherlock.** { *; }
  4. -keep interface com.actionbarsherlock.** { *; }
  5. -keepattributes *Annotation*

也尝试添加

  1. -keepclassmembers class **.R$* {
  2. public static <fields>;
  3. }

正如建议的here.

猜你在找的Java相关文章