【问题标题】:Does ProGuard support Java 11?ProGuard 是否支持 Java 11?
【发布时间】:2019-04-27 22:50:11
【问题描述】:

我尝试使用 Proguard (6.1.0beta1) 但得到了

(Unsupported version number [55.0] (maximum 54.0, Java 10)))

是否有可以使用 Java 11 进行管理的 ProGuard 替代品?

【问题讨论】:

  • 只是好奇:你为什么要这么做?
  • 你可以为 Java 10 编译你的代码吗?你真的在使用 Java 11 的特性吗?
  • 提示:尝试查看发布信。此类工具通常会准确告诉您它们支持的 Java 版本。
  • 当然:询问工具建议会使您的问题偏离主题。所以最好从你的问题中删除这部分。
  • 异常已经告诉你它不被支持,那为什么还要发布这个问题呢?

标签: java proguard


【解决方案1】:

作为Karol Dowbecki's answer 的后续:ProGuard 6.1.0 beta2(或更新版本)支持 Java 10、11 和 12。请参阅 #188 Support Java 11


请注意,由于引入了模块系统,您需要将 libaryjars 更改为 Java 9 或更高版本。这是我Gradle Kotlin build script的部分:

if (JavaVersion.current().isJava9Compatible) {
    libraryjars(System.getProperty("java.home") + "/jmods")
} else {
    libraryjars(System.getProperty("java.home") + "/lib/rt.jar")
}

【讨论】:

【解决方案2】:

Java 11 引入了对字节码和类文件格式的更改:

由于上述原因,您目前不太可能找到有效的代码混淆器。希望 ProGuard 将很快更新(请参阅为 ProGuard 6.1 计划的#188 Support Java 11)。

【讨论】:

  • 我建议为 Java 10 编译。+1
  • 看来我必须这样做。
  • 您可以做的另一件事是签订支持合同 - guardsquare.com/en/support。这将帮助他们找到资源以将新功能添加到您首选的混淆器中……更快。 (免责声明:我与 GuardSquare 或 ProGuard 产品没有任何关系或经济利益。)
猜你喜欢
  • 2019-03-24
  • 1970-01-01
  • 2021-12-27
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多