Proguard 不处理 FXML 中的 onAction 调用

灰色

我的很多 GUI 都是在 FXML 文件中描述的,对于按钮和其他元素,有一个选项可以直接从 FXML 设置事件处理程序,绑定到控制器中的方法,设置在同一个 FXML 文件中。所以如果有一个类view.Controller和一个方法public void foo(),那么它看起来像这样:

<StackPane fx:controller="view.Controller" xmlns="http://javafx.com/javafx/8.0.121" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <Button onAction="#foo" />
   </children>
</StackPane>

然而,在混淆 ProGuard 之后,它变成了这样:

<StackPane fx:controller="b.D" xmlns="http://javafx.com/javafx/8.0.121" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <Button onAction="#foo" />
   </children>
</StackPane>

foo()view.Controller被混淆,但在方法调用onAction没有。我正在-adaptresourcefilecontents **.properties,META-INF/MANIFEST.MF,**.xml,**.css,**.fxml为此使用参数。有一个类似的错误,即 ProGuard 不会混淆自定义控件,这可以通过删除 FXML 中的导入并编写完全限定的路径来解决。我认为在这种情况下不能使用这种解决方法。除了将所有内容onAction从 FXML 移到button.setOnAction()Java 中(这很麻烦且工作量很大)之外,还能做些什么呢?

我正在使用 ProGuard 6.0

灰色

所以最后我写了一个小工具来从 ProGuard 解压 jar,根据提供的映射重命名所有 onAction 调用,然后再次将它打包回 jar。是万一有人需要它的工具(尽管它主要是从 SO 和一些正则表达式的答案中结合起来的,没什么特别的)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaFX8-FXML如何使用onAction-tag中的参数调用方法?

来自分类Dev

不同包中的FXML和Controller-Button onAction问题

来自分类Dev

不同包中的FXML和Controller-Button onAction问题

来自分类Dev

FXML设置ButtonType onAction

来自分类Dev

在FXML文件中设置自定义控件的Button“ onAction”方法吗?

来自分类Dev

加载FXML时解决“ onAction”时出错

来自分类Dev

GraalVM javafx.fxml.LoadException:解决onAction ='#loginAction'时出错,事件处理程序不在命名空间中

来自分类Dev

如何从JavaScript中调用Java方法中FXML为JavaFX

来自分类Dev

JavaFX:是否有简单的方法可以在代码中更改onAction处理程序的方法?

来自分类Dev

Proguard删除lambda调用

来自分类Dev

java.lang.NullPointerException处理Javafx中另一个FXML内部的FXML

来自分类Dev

VBA在OnAction中包含子例程的参数

来自分类Dev

proguard + maven + android错误:如果曾经调用过,则必须在[proguard.optimize.peephole.ClassMerger]中覆盖方法

来自分类Dev

如何在Android Studio中启用ProGuard模糊处理?

来自分类Dev

JavaFX:为按钮的事件处理程序解决 onAction 的 LoadException

来自分类Dev

Javafx中的ProgressBar在onAction块中不会更新

来自分类Dev

如果曾经在Android Studio中调用[proguard.optimize.peephole.ClassMerger],则必须重写该方法

来自分类Dev

在FXML中设置CheckBoxTableCell

来自分类Dev

在FXML中创建FileChooser

来自分类Dev

FXML文件中的常量

来自分类Dev

文件名中的数值导致OnAction错误

来自分类Dev

Crashlytics中的Proguard Stack

来自分类Dev

*在Proguard中是VS还是**?

来自分类Dev

为什么在不处理Java中异常的情况下调用引发RuntimeException的方法时,程序不会终止?

来自分类Dev

带有JavaFX FXML的CSS中的样式布局窗格而不创建变量?

来自分类Dev

带有JavaFX FXML的CSS中的样式布局窗格而不创建变量?

来自分类Dev

FXML应用程序中必须完成的所有“内务处理”是什么?

来自分类Dev

ProGuard不生成映射文件

来自分类Dev

不ProGuard的支持Java 11?

Related 相关文章

  1. 1

    JavaFX8-FXML如何使用onAction-tag中的参数调用方法?

  2. 2

    不同包中的FXML和Controller-Button onAction问题

  3. 3

    不同包中的FXML和Controller-Button onAction问题

  4. 4

    FXML设置ButtonType onAction

  5. 5

    在FXML文件中设置自定义控件的Button“ onAction”方法吗?

  6. 6

    加载FXML时解决“ onAction”时出错

  7. 7

    GraalVM javafx.fxml.LoadException:解决onAction ='#loginAction'时出错,事件处理程序不在命名空间中

  8. 8

    如何从JavaScript中调用Java方法中FXML为JavaFX

  9. 9

    JavaFX:是否有简单的方法可以在代码中更改onAction处理程序的方法?

  10. 10

    Proguard删除lambda调用

  11. 11

    java.lang.NullPointerException处理Javafx中另一个FXML内部的FXML

  12. 12

    VBA在OnAction中包含子例程的参数

  13. 13

    proguard + maven + android错误:如果曾经调用过,则必须在[proguard.optimize.peephole.ClassMerger]中覆盖方法

  14. 14

    如何在Android Studio中启用ProGuard模糊处理?

  15. 15

    JavaFX:为按钮的事件处理程序解决 onAction 的 LoadException

  16. 16

    Javafx中的ProgressBar在onAction块中不会更新

  17. 17

    如果曾经在Android Studio中调用[proguard.optimize.peephole.ClassMerger],则必须重写该方法

  18. 18

    在FXML中设置CheckBoxTableCell

  19. 19

    在FXML中创建FileChooser

  20. 20

    FXML文件中的常量

  21. 21

    文件名中的数值导致OnAction错误

  22. 22

    Crashlytics中的Proguard Stack

  23. 23

    *在Proguard中是VS还是**?

  24. 24

    为什么在不处理Java中异常的情况下调用引发RuntimeException的方法时,程序不会终止?

  25. 25

    带有JavaFX FXML的CSS中的样式布局窗格而不创建变量?

  26. 26

    带有JavaFX FXML的CSS中的样式布局窗格而不创建变量?

  27. 27

    FXML应用程序中必须完成的所有“内务处理”是什么?

  28. 28

    ProGuard不生成映射文件

  29. 29

    不ProGuard的支持Java 11?

热门标签

归档