代码之家  ›  专栏  ›  技术社区  ›  VladoS24

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

  •  0
  • VladoS24  · 技术社区  · 7 年前

    我面临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))
    

    有人能帮我吗? 非常感谢。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Shailesh Chandra    7 年前

    这看起来像是库jar的问题。您确定所有库都配置正确吗? MRTDFileInfo 是的内部类 MRTDFileSystem ,可以在内部引用。

    处理步骤如下:

    输入Jar-->斯特林-->优化-->模糊--> 预先审核 --&燃气轮机;输出震击器

    根据您的错误跟踪,您在预验证步骤中收到错误: 预验证时出现意外错误

    如果要跳过此erorr,只需使用prevent Proguard进行预验证:

    -dontpreverify
    

    它将跳过预验证,但我怀疑jar是否能正常运行

    我建议您正确提供库JAR,以便proguard可以引用它们。

    除了-dontwarn之外,还可以使用-ignorewarnings

    希望这对调试问题有所帮助。