使用proguard混淆jar文件

时间:2012-01-02 07:04:11

标签: java obfuscation proguard

我使用proguard来模糊我的jar文件。 在处理过程中,我遇到了以下错误:

Initializing...
Warning: tdvep.jmNb: can't find referenced class QSYGWO
Warning: tdvep.qmfsfjttKdvEpNz: can't find referenced class FVTYBN
Warning: tdvep.qsfboBcSw$qsffmtssf: can't find referenced class UGKTLU
Warning: tdvep.qsffmtssf: can't find referenced class DREQUQ
Warning: there were 4 unresolved references to classes or interfaces.
         You may need to specify additional library jars (using '-libraryjars').

请先纠正上述警告。 因此,请指导我解决此警告。

1 个答案:

答案 0 :(得分:1)

您是否已查看ProGuard问题排查部分 - Problems while processing

如果有unresolved references to classes or interfaces,您很可能忘记指定基本库。为了正确处理,必须指定代码引用的所有库,包括Java运行时库。要指定库,请使用-libraryjars选项。

例如,如果ProGuard抱怨它无法找到javax.crypto类,您可能仍需要指定jce.jar, next to the more common rt.jar.

如果你错过了一个图书馆并且你绝对不确定它是否已被使用,你可以试试-ignorewarnings选项,甚至是-dontwarn option。如果您真的知道自己在做什么,请仅使用这些选项。

例如,如果您正在为Android进行开发,并且ProGuard抱怨它无法找到java.awt class,那么您使用的某个库指的是java.awt。这有点阴暗,因为Android根本没有此软件包,但如果您的应用程序无论如何都可以使用,您可以ProGuard接受"-dontwarn java.awt.**"