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设置不太熟悉。有什么建议吗?
答案 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.**
。