带有 [java/lang/String] 的 Proguard 警告

VladoS24

我正面临 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章