0

我是第一次使用 ProGuard。我在项目的根包中拥有我所有的活动、片段、列表片段等(我试图移动它们但没有任何区别)。我正在使用标准proguard-android.txt加上proguard-project.txt我可以放置任何我想要的东西,这对这些类没有影响,因为它们只是被忽略了。

它们未列在usage.txt,或中seeds.txt,也不在 dex 中(尽管库类似乎得到了正确处理)。mapping.txtdump.txt

-keep public class <my.project.rootpackage>.MyActivity我为每个被忽略的课程尝试了一个,还有很多其他的东西,最后一个是:

-dontshrink
-dontoptimize
-dontobfuscate

-keep public class * extends android.app.Application
-keep public class * extends android.support.v4.app.FragmentActivity
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.support.v4.app.ListFragment
-keep public class * extends android.preference.PreferenceActivity

我可以在学习时使用一个更简单的项目,但我不明白为什么它不应该工作,毕竟 ProGuard 似乎可以很好地处理这些库。当然,项目在调试模式下运行良好。

ProGuard 更新到 v4.8,Eclipse 3.7.2,ADT 和 SDK 更新,项目目标 API 15,ProGuard 没有消息。

我错过了什么?我承认我从来没有清楚的构建过程。我必须学习蚂蚁吗?

编辑:当它不起作用时(也就是说,ProGuard 以错误结束),我经常收到这种错误:

警告:my.project.package.ClassA:找不到引用的类 my.project.package.ClassB

请注意,这两个类也可以在同一个包中。

4

1 回答 1

0

因此,被忽略的类似乎是由于“自动构建”功能阻止了 ProGuard 完成其工作。如果未选中,“导出签名的应用程序包”过程会顺利进行,但 ProGuard 不会混淆/缩小。但这又引出了另一个问题。

参考资料:为什么在我以前不需要 -libraryjars 的情况下开始使用它?

...编辑:实际上只是项目中的 apkbin没有缩小。导出的 APK 没问题。什么奥德赛。

于 2012-09-06T14:03:48.660 回答