Background
JFoenix worked well on Android in the past when using:
- JavaFX 8 / 1.8
javafxmobile-plugin
- JavaFXPorts + Dalvik VM
- Charm Down–based Android deployment
In that setup, JFoenix relied on Android-specific JavaFX skins, for example:
TextAreaSkinAndroid
TextFieldSkinAndroid
which were available at runtime and used directly by JFoenix Android skins:
JFXTextAreaSkinAndroid
JFXTextFieldSkinAndroid
This approach worked reliably for Android APK builds.
Current Situation (Problem)
With modern tooling:
- JavaFX 17+
- GluonFX
- SubstrateVM / GraalVM
- Attach APIs
- Android deployment via Gluon
JFoenix no longer works correctly on Android, even though it still works fine on desktop.
The main blocker appears to be that:
TextAreaSkinAndroid and TextFieldSkinAndroid are no longer exposed as usable APIs
- They exist only in the JavaFX Android source tree, not in public JavaFX artifacts
- Third-party libraries (like JFoenix) cannot depend on them safely
Relevant OpenJFX source (Android-only):
https://github.com/openjdk/jfx/tree/jfx17/modules/javafx.controls/src/android/java/javafx/scene/control/skin
Related Gluon / Substrate Discussion
I have opened a related question with the Gluon team to understand the intended approach going forward:
🔗 Gluon Substrate issue:
gluonhq/substrate#1340
This issue discusses:
- Whether Android skins are internal-only
- How custom controls should support Android with GluonFX
- Whether copying or reimplementing Android skins is expected
Questions for JFoenix Maintainers
I’d appreciate guidance on the JFoenix side:
- Is Android support still a goal for JFoenix with JavaFX 17+?
- Should JFoenix continue to rely on Android-specific skins, or move away from them?
- Would a partial reimplementation of Android behavior be acceptable?
- Is there interest in aligning JFoenix with the modern GluonFX / SubstrateVM stack?
I’m currently experimenting with porting JFoenix to JavaFX 17+ and GluonFX and would be happy to contribute fixes or refactors if there is an agreed direction.
Summary
- ✅ JFoenix worked on Android with JavaFX 8 + JavaFXPorts
- ❌ It does not work correctly with JavaFX 17+ + GluonFX
- 🚧 Android-specific skins are no longer publicly accessible
- 🤝 Clarification is needed on the future Android strategy
Thanks for maintaining JFoenix — any guidance would be highly appreciated 🙏
Background
JFoenix worked well on Android in the past when using:
javafxmobile-pluginIn that setup, JFoenix relied on Android-specific JavaFX skins, for example:
TextAreaSkinAndroidTextFieldSkinAndroidwhich were available at runtime and used directly by JFoenix Android skins:
JFXTextAreaSkinAndroidJFXTextFieldSkinAndroidThis approach worked reliably for Android APK builds.
Current Situation (Problem)
With modern tooling:
JFoenix no longer works correctly on Android, even though it still works fine on desktop.
The main blocker appears to be that:
TextAreaSkinAndroidandTextFieldSkinAndroidare no longer exposed as usable APIsRelevant OpenJFX source (Android-only):
https://github.com/openjdk/jfx/tree/jfx17/modules/javafx.controls/src/android/java/javafx/scene/control/skin
Related Gluon / Substrate Discussion
I have opened a related question with the Gluon team to understand the intended approach going forward:
🔗 Gluon Substrate issue:
gluonhq/substrate#1340
This issue discusses:
Questions for JFoenix Maintainers
I’d appreciate guidance on the JFoenix side:
I’m currently experimenting with porting JFoenix to JavaFX 17+ and GluonFX and would be happy to contribute fixes or refactors if there is an agreed direction.
Summary
Thanks for maintaining JFoenix — any guidance would be highly appreciated 🙏