【问题标题】:FXML file can't load after obfuscation with proguard使用 proguard 混淆后无法加载 FXML 文件
【发布时间】:2018-06-11 07:22:09
【问题描述】:

运行混淆的 jar 后出现以下错误:

原因:java.io.UncheckedIOException:加载 FXML 时出错:/fxml/main.fxml

引起:javafx.fxml.LoadException: 未知路径

但 FXML 文件存在于指定路径。

我的 ProGuard 配置文件包含以下规则:

-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod,javafx.fxml.FXML

-adaptresourcefilenames **.fxml,**.png,**.css,**.pdf,**.ttf,**.otf,**.txt
-adaptresourcefilecontents **.png,**.css,**.pdf,**.ttf,**.otf,**.txt
-adaptresourcefilecontents **.fxml,**.properties,META-INF/MANIFEST.MF
-adaptclassstrings

-keepclassmembernames class * {@FXML *;}

【问题讨论】:

    标签: javafx proguard obfuscation fxmlloader


    【解决方案1】:

    这个问题是重复的;这是这个问题的答案:

    问题是 FXML 无法导入不以大写字母开头的类。因此,必须提供 ProGuard 用于混淆的可用名称列表。

    更多详情请访问:https://stackoverflow.com/a/29374932/2627659

    【讨论】:

      猜你喜欢
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多