我正面临着proguard的问题。我在proguard中有一些规则,其中一个是:
-keep class org.jmrtd.** { *; }
-dontwarn org.jmrtd.**
但是在构建
时我收到了这个警告Unexpected error while performing partial evaluation:
Class = [org/jmrtd/MRTDFileSystem]
Method = [readBinary(II)[B]
Exception = [java.lang.IllegalArgumentException] (Can't find common super class of [java/lang/String] (with 2 known super classes) and [org/jmrtd/MRTDFileSystem$MRTDFileInfo] (with 1 known super classes))
Unexpected error while preverifying:
Class = [org/jmrtd/MRTDFileSystem]
Method = [readBinary(II)[B]
Exception = [java.lang.IllegalArgumentException] (Can't find common super class of [java/lang/String] (with 2 known super classes) and [org/jmrtd/MRTDFileSystem$MRTDFileInfo] (with 1 known super classes))
任何人都可以帮助我吗? 谢谢。
答案 0 :(得分:1)
看起来像库jar的问题。您确定所有库都配置正确吗? MRTDFileInfo
是MRTDFileSystem
的内部类,可以在内部引用。
处理步骤如下:
输入Jar - > Strink - >优化 - >混淆 - > 预验证 - >输出罐
根据您的错误跟踪,您在预验证步骤中收到错误:预先验证时出现意外错误
如果你想跳过这个erorr你可以简单地使用预防Proguard来预先验证:
-dontpreverify
它将跳过预先验证,但我怀疑jar会正常运行
我建议你正确提供你的图书馆罐子,以便proguard可以参考它们。
除了-dontwarn之外,您还可以使用-ignorewarnings
希望这有助于调试问题。