我正面临 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))
有谁能够帮我?谢谢你。
看起来像库 jar 的问题。您确定所有库都配置正确吗?MRTDFileInfo
是 的内部类MRTDFileSystem
,可以在内部引用。
处理步骤如下:
Input Jar --> Strink --> Optimize --> Obfuscate --> Preverify --> output jar
根据您的错误跟踪,您在预验证步骤中遇到错误:预验证时出现意外错误
如果你想跳过这个错误,你可以简单地使用阻止 Proguard 进行预验证:
-dontpreverify
它将跳过预验证,但我怀疑 jar 能否正常运行
我建议您正确提供您的库 jars,以便 proguard 可以引用它们。
除了 -dontwarn ,您还可以使用 -ignorewarnings
希望这有助于调试问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句