使用 [java/lang/String] 的 Proguard 警告
Proguard warning with [java/lang/String]
我遇到了混淆器问题。我在混淆器中有一些规则,其中之一是:
-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
的内部 class,可能会在内部引用。
处理步骤如下:
Input Jar --> Strink --> Optimize --> Obfuscate --> Preverify --> output jar
根据您的错误跟踪,您在预验证步骤中遇到错误:预验证时出现意外错误
如果你想跳过这个错误,你可以简单地使用防止 Proguard 预验证:
-dontpreverify
它将跳过预验证,但我怀疑 jar 是否会 运行 正确
我建议您正确提供您的库 jar,以便 proguard 可以引用它们。
除了 -dontwarn 之外,您还可以使用 -ignorewarnings
希望这有助于调试问题。
我遇到了混淆器问题。我在混淆器中有一些规则,其中之一是:
-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
的内部 class,可能会在内部引用。
处理步骤如下:
Input Jar --> Strink --> Optimize --> Obfuscate --> Preverify --> output jar
根据您的错误跟踪,您在预验证步骤中遇到错误:预验证时出现意外错误
如果你想跳过这个错误,你可以简单地使用防止 Proguard 预验证:
-dontpreverify
它将跳过预验证,但我怀疑 jar 是否会 运行 正确
我建议您正确提供您的库 jar,以便 proguard 可以引用它们。
除了 -dontwarn 之外,您还可以使用 -ignorewarnings
希望这有助于调试问题。