ProGuard警告:有7个未解决的程序类成员引用

时间:2015-01-14 02:44:39

标签: java jar proguard

ProGuard停止了很多警告:

  

警告:有1221个未解决的类或类引用   接口。            您可能需要添加缺少的库jar或更新其版本。            如果您的代码工作正常而没有丢失的类,则可以禁止            警告' -dontwarn'选项。            (http://proguard.sourceforge.net/manual/troubleshooting .html #unresolvedclass)

     

警告:有37个库类的实例依赖于   程序类。            你必须避免这种依赖,因为程序类会            处理,而库类将保持不变。            (http://proguard.sourceforge.net/manual/troubleshooting。html#dependency)警告:有7个未解析的引用   程序类成员。            您的输入类似乎不一致。            您可能需要重新编译代码。            (http://proguard.sourceforge.net/manual/troubleshooting .html #unresolvedprogramclassmember)

     

错误:请先纠正上述警告。

但我的罐子运行正常。我对proguard设置不太熟悉。有什么建议吗?

3 个答案:

答案 0 :(得分:5)

我将引用你问题的一个非常相关的部分(即答案)。

  

如果您的代码正常而没有丢失的类,则可以使用'-dontwarn'选项 取消警告

因此,使用-dontwarn运行它,因为我的jar正确运行。

记录(根据您的问题)here如果您要添加外部库,还可以使用选项-libraryjars

答案 1 :(得分:2)

这里最好的办法是在progyard配置文件中添加库。在它的顶部,在输入和输出jar路径之后,放置像这样的行,每个库jar用于你使用的一行:

-libraryjars 'path/to/jar/file.jar'

这告诉proguard从指定的jar中加载缺少的类。

答案 2 :(得分:1)

上面有类似的警告

Warning: class A: can't find referenced class B

您可以使用-keep class com.package.** { *; }来防止混淆,或者,如果确定这不是问题,则可以使用-dontwarn com.package.**