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

Proguard-有没有办法忽略外部库中不兼容的(由于Java字节码版本)包?

  •  2
  • elder elder  · 技术社区  · 7 年前

    我有一个桌面 Java 项目(以较旧的JRE作为目标编译)。my的简化结构 .pro 文件为:

    -injars qtt.jar
    -outjars qtt_obf.jar
    -libraryjars \Libraries\wsp.jar
    

    wsp.jar 由第三方提供,包括 Java 9 -特定包,例如。 META-INF\versions\9\com.xyz.prod\<various_other_folders> . 此时, Java 9 support is not available 因此 Proguard 抱怨存在版本为的类 53.0 .

    有没有办法 Proguard公司 “跳过”这些外部依赖关系(当然,在运行时不要中断应用程序)?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Henry Crutcher    7 年前

    事实证明,过滤器是这里的救星:改变你的例子,让它读起来

    -injars qtt.jar
    -outjars qtt_obf.jar
    -libraryjars \Libraries\wsp.jar(!META-INF/**) 
    

    将过滤掉META-INF中的所有内容,包括您试图删除的9版类文件。请参阅以下页面中的更多详细信息。

    https://www.guardsquare.com/proguard/manual/usage#filefilters