java.lang.StackOverflowError при нажатии FX ComboBox на Android

При использовании JavaFXPorts на Android (Android 4.1.1 на планшете Asus Transformer Prime TF201) при нажатии на поле со списком выдается ошибка java.lang.StackOverflowError (см. ниже верхние стеки трассировки стека).

Это происходит в ComboBox в моем приложении FX, а также на 100% воспроизводимо с примером ComboBox в Ensemble. Другими словами: нельзя использовать JavaFX ComboBox.

Я знаю об ограничении размера стека Android, опубликованном на многих форумах, и есть различные предложения о том, что делать, когда это происходит с Android UI и Android API. Однако не удается найти подходящую идею для применения при использовании пользовательского интерфейса JavaFX и JavaFXPorts.

Любая идея по исправлению\настройке\обходному пути будет высоко оценена.

E/AndroidRuntime(32212): FATAL EXCEPTION: JavaFX Application Thread
E/AndroidRuntime(32212): java.lang.StackOverflowError
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)

person Roy    schedule 12.01.2016    source источник


Ответы (1)


Вы можете создать файл java.custom.properties и включить в него это свойство:

monocle.stackSize=128000

Вы также можете переопределить другие системные свойства, включив их с новыми значениями.

Поместите файл в корень вашего пути к классам, например. в папке src/android/resources вашего проекта.

Вы можете найти этот FAQ здесь здесь и всю документацию по JavaFXPorts здесь.

Проверьте, решает ли это ваше исключение.

person José Pereda    schedule 12.01.2016
comment
Спасибо Хосе, это решило проблему одним быстрым движением. +1 - person Roy; 13.01.2016
comment
У меня была аналогичная проблема с Tableview, и это решило ее +1, к сожалению, ссылка на часто задаваемые вопросы выше мертва, ссылка на шкаф, которую я могу найти, это gluonhq.com/knowledge-base/ - person Nigel Savage; 13.05.2017
comment
Спасибо за сообщение. Действительно, это правильная ссылка. Я обновил свой ответ. - person José Pereda; 13.05.2017
comment
@ Хосе Переда извините, но где я создал этот файл, в каком каталоге моего проекта? - person Gabriel Jeremy Rodriguez River; 22.09.2017
comment
Как я уже сказал: в папку /src/android/resources вашего проекта, или /src/main/resources, если вы хотите добавить некоторые другие свойства, общие для всех платформ. - person José Pereda; 22.09.2017