java.lang.StackOverflowError 在 Android 上按下 FX ComboBox

java.lang.StackOverflowError when pressing FX ComboBox on Android

在 Android(Android 4.1.1 在 Asus Transformer Prime TF201 平板电脑上使用 JavaFXPorts 时,按下 ComboBox 时抛出 java.lang.WhosebugError(见顶部堆栈下方)堆栈跟踪)。

它发生在我的 FX 应用程序的 ComboBox 中,并且在 Ensemble 中的 ComboBox 示例中也是 100% 可重现的。换句话说:不能使用 JavaFX ComboBox。

我知道许多论坛上都发布了 Android 堆栈大小限制,并且对于 Android UI 和 [=23] 发生时如何处理有各种建议=] API。但是,在使用 JavaFX UI 和 JavaFXPorts 时找不到相关的想法来应用。

任何有关 fix\tweak\workaround 的想法都将不胜感激。

E/AndroidRuntime(32212): FATAL EXCEPTION: JavaFX Application Thread
E/AndroidRuntime(32212): java.lang.WhosebugError
E/AndroidRuntime(32212):        at javafx.scene.Node.getTransformedBounds(Node.java:3422)
E/AndroidRuntime(32212):        at javafx.scene.Parent.getChildTransformedBounds(Parent.java:1724)
E/AndroidRuntime(32212):        at javafx.scene.Parent.recomputeBounds(Parent.java:1516)
E/AndroidRuntime(32212):        at javafx.scene.Parent.impl_computeGeomBounds(Parent.java:1380)
E/AndroidRuntime(32212):        at javafx.scene.layout.Region.impl_computeGeomBounds(Region.java:3078)
E/AndroidRuntime(32212):        at javafx.scene.Node.updateGeomBounds(Node.java:3577)
E/AndroidRuntime(32212):        at javafx.scene.Node.getGeomBounds(Node.java:3530)

您可以创建 java.custom.properties 文件,并在其中包含 属性:

monocle.stackSize=128000

您也可以覆盖其他系统属性,方法是将它们包含在新值中。

将文件放在类路径的根目录下,例如在项目的文件夹 src/android/resources 中。

您可以在此处here and all the documentation for JavaFXPorts here.

找到此常见问题解答

检查这是否解决了您的异常。