问题标签 [gluonfx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Gluon JavaFX maven nativerun 在加载 fxml 文件时出现错误
经过数小时的测试,我仍然无法将我的 JavaFX 项目作为本机应用程序(Windows 上的 .exe)运行。我使用 JavaFX 11.0.2。执行时我没有收到任何错误mvn clean gluonfx:build
。错误伴随着mvn gluonfx:nativerun
:
这是我的 Main.fxml 和 Chat.fxml(使用 Scene Builder 创建):
主要.fxml:
聊天.fxml:
最后是我的src/main/resources/META-INF/substrate/config/reflectionconfig.json
,它(应该)包含我在我的 fxml 文件中使用的所有类和方法:https ://pastebin.com/EqQpBiKH
我的代码在 IntelliJ 中运行时运行良好,但不是从本机映像运行。我用尽了我想象的所有解决方案的可能性……
java - GraalVM 上的 JavaFX 无法使用 FastJson 和 MediaPlayer
很高兴我已经成功编译了官方的测试程序,但是在尝试编写自己的JavaFX程序时出现了一些问题:
当我引入fastjson依赖时,gluonfx: build 无法成功构建。这是它的日志:
这就是我使用这些依赖项的方式
有谁知道这是关于什么的?这是否意味着 FastJson 不能在 Graalvm 上使用?或者我需要一些额外的配置吗?如果是,什么样的依赖项不能在 GraalVm 项目上使用?
还有一个问题是我通过pom引入了JavaFX的Meida包后,在编译时,mediaplayer没有工作,点击按钮后没有报错和响应。我尝试使用异常监听器将错误信息放入TextArera,他没有给我任何异常信息。
所有这些问题只有在我构建项目,运行时 javafx:run 和 graalfx:run 才能正常运行,这仅出现在 graalvm:build 命令中。
因为google这方面的资料太少了,我自己解决不了这些问题,只能求助,不胜感激!
android - gluonfx:package 在教程中失败,无法找到 libHelloFX.so
我正在按照 Gluon 提供的文档的说明进行操作:https ://docs.gluonhq.com/#platforms_android并在我的 Ubuntu 桌面 CLI 上尝试了以下命令:
不幸的是,这未能建立。以前,我能够mvn -Pandroid gluonfx:build
成功运行该命令。(AFAIK,也就是说。文档中没有给出验证测试,但预期的文件似乎已填充,并且该过程最后给出了 BUILD_SUCCESS 消息)。
抛出的异常表明该文件/home/phil/Projects/metronome/gluon-samples-master/HelloFX/target/gluonfx/aarch64-android/libHelloFX.so
不存在。实际上,该文件夹/aarch64-android
仅包含两个文件夹:gensrc
和gvm
.
我是否忽略了某些事情或犯了错误?该设备通过 USB 连接到 ubuntu 系统。我之前已经成功使用此设备和设置,以及 AndroidStudio。
这是控制台输出(我已将其分成几部分以方便水平滚动):
继续(控制台输出)...
以下来自日志文件:/gluon-samples-master/HelloFX/target/gluonfx/aarch64-android/gvm/log
继续(日志内容)...
继续(日志内容)...
继续(日志内容)...
编辑(21 年 9 月 20 日)正如评论中所建议的,我运行了以下 cli 命令:mvn clean -Pandroid gluonfx:build gluonfx:package
该错误表明 NDK 缺少所需的文件:/home/phil/Android/Sdk/ndk/23.0.7599858/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/bin/objdump
我的位置/home/phil/Android/Sdk/ndk/23.0.7599858/toolchains/llvm/prebuilt/linux-x86_64/
不包含该文件夹。/aarch64-linux-android
我通过以下步骤创建了 NDK 文件夹:
使用我已在我的设备上成功执行并运行的现有教程程序打开 AndroidStudio。
点击工具>> SDK管理器
导航到“SDK 工具”选项卡
选中“NDK(并排)”复选框 Android Studio 是最新的。
Android Studio 北极狐 | 2020.3.1 Build #AI-203.7717.56.2031.7583922,于 2021 年 7 月 26 日构建 运行时版本:11.0.10+0-b96-7249189 amd64 VM:OpenJDK 64-Bit Server VM by JetBrains sro Linux 5.4.0-84- generic GC:G1 Young Generation,G1 Old Generation 内存:1280M 内核:6 注册表:external.system.auto.import.disabled=true 非捆绑插件:org.jetbrains.kotlin 当前桌面:ubuntu:GNOME
我创建了一个环境变量
ANDROID_NDK=~/Android/Sdk/ndk/23.0.7599858
我现在将删除这个 ndk 和环境变量,并查看应该由 pom 中的 gluon 插件提供的 ndk 是否足够。理论:我安装的 Android Studio 中的 NDK 正在拦截或覆盖对所需文件的访问。由于这需要我编辑我的 .bashrc 并重新启动,我将在此处暂停编辑过程并返回报告结果。
以下是 CLI 命令运行的控制台内容。
android - INSTALL_FAILED_NO_MATCHING_ABIS 尝试安装和运行 gluonfx HelloFX
我正在完成 Gluon-Mobile 文档中从此时开始的步骤。 https://docs.gluonhq.com/#platforms_android_sample
以下步骤成功,并且在每种情况下都创建了预期的文件。运行 package 命令后,我很高兴在预期的位置看到 .apk 文件。
- mvn -Pandroid gluonfx:编译
- mvn -Pandroid gluonfx:link
- mvn -Pandroid gluonfx:package
当我运行命令在我的设备上安装和运行时
- mvn -Pandroid gluonfx:安装 gluonfx:nativerun
我收到以下异常消息:
我看到我的设备被正确识别(LM X210VPP)。之前有警告,这与故障有关吗?
以下是日志文件的较大摘录。如果需要更多,请告诉我!
这是否意味着我的特定设备不包括在内?我从 Android 中找到了这个关于 ABI 的页面,并试图弄清楚我的设备是如何关联的。更新:手机有 armeabi-v7z 指令集。在我看来,它应该被支持,因为它列在我上面链接的 Android ABI 页面中。我又想知道我应该更加关注 NDK 是否有问题。
编辑(21 年 10 月 3 日),跟进评论中的说明
我在使用具有 64 位 CPU 和指令集的手机时遇到了同样的错误:
来自高通骁龙 665
使用 Droid Hardware Info 工具检查手机上的硬件信息:
从日志
感谢您提供任何帮助。
javafx - 如何使用存储附加服务进行公共存储访问而不是私有存储访问?
问题总结
我的应用程序(开发中)在桌面上运行时,可以:
- 写入和读取私有存储
- 写入和读取公共存储。
但是,在 Android 上运行时,只能访问私有存储。
如何复制问题
我不分享我的项目代码库的摘录,而是参考我们共享和拥有的另一个代码库 - Gluon Samples中的gluon-connect-file-provider项目。示例应用程序仅演示私有存储的使用。没有演示公共存储使用,因此在 gluon-connect-file-provider 项目中,您可以在com.gluonhq.samples.connect.file.Main.java中进行以下更改:
前
后
更改后在桌面上启动应用程序时,您可以首先观察在您的机器上创建的目录~/Gluon 。然后,当您在应用程序的对象查看器屏幕中打开/关闭复选框时,您还可以确认底层 JSON 文件~/Gluon/user.json正在更新。因此,我们可以同意公共存储工作。
但是,当部署到 Android 时,我们可以在mvn -Pandroid gluonfx:nativerun期间在滚动终端中看到与文件权限相关的故障。首先,启动时无法创建 Gluon 目录,因此稍后会尝试写入user.json文件。
我认为解决方案是在项目中定义文件src/android/AndroidManifest.xml。在target/gluonfx/aarch64-android/gensrc/android/AndroidManifest.xml中找到的默认值不包括以下权限:
因此,我将生成的AndroidManifest.xml文件复制到src/android,包括这些条目。即使 Android 设置显示我的应用程序具有存储权限,但这仍然没有解决问题。
注意 - 在准备这篇文章寻求您的帮助时,我注意到,在没有为 gluon-connect-file-provider 提供具有外部读/写权限的src/android/AndroidManifest.xml文件的情况下,Android 设备已经显示了部署的应用程序已启用存储权限。
我使用了两种不同的 Android 设备进行测试。
- Pixel XL 运行 Android 版本 10。
- 运行 Android 版本 10 的三星 S9。
我使用最新的 GluonHQ Attach 依赖项 4.0.13 以及我发现的最旧的 4.0.7 进行了测试。
存储附加服务是否还需要做更多的事情才能允许 Android 上的公共存储访问?请告诉我如何修改 gluon-connect-file-provider 应用程序以使其如此,谢谢。
maven - 使用 GraalVM、Maven、GluonFX 插件的本机映像 - 资源包 com.sun.glass.ui.win 的问题
GraalVM 版本:21.2.0 JavaFX 版本:17.0.0.1 Maven 版本:3.6.3
我非常接近能够运行我的本机图像,我在 pom.xml 等中将类添加到我的反射列表中,但现在由于找不到资源包错误,我正在停止。如果有人能给我一个提示,那将不胜感激。
这是我的 pom.xml:
其次是错误输出:
因此,缺少资源“com/sun/glass/ui/win/themes”。但是我找不到如何纠正这个问题。
javafx - 即使用户在横向模式下旋转他们的设备,是否在 Gluon API 中保持我们的应用程序处于纵向模式?
在将我的应用程序设置为纵向模式后,我发现如果用户操纵手机将应用程序调用为横向模式,它的布局是不可接受的。我可以稍后花时间重写/重新测试纵向和横向模式的 UX,但目前是我们让我们的应用程序一直保持纵向模式的一种方式吗?
gluon-mobile - 用于将加密密钥存储到 iOS 和 Android 设备的 API
学习 JavaFX 和 Gluon 移动,并有一个关于移动安全的问题。
我一直在查看文档和 API,但找不到任何将加密密钥存储到 iOS 和 Android 设备(例如分别为 KeyChain 和 KeyStore)的参考资料。
我的理解是,需要创建一个附加模块,因为一个不存在(或对公众可用),对吗?
设置模块作为模板可能是一个很好的开始(但密钥库而不是设置),但想看看是否有人知道已经完成或需要完成的工作。
windows - JavaFX Windows Native Image HelloFX 示例失败:java.lang.NoSuchMethodError: com.sun.glass.ui.win.WinView.notifyResize(II)V
我尝试构建并启动 Gluons HelloFX 示例作为 Windows 的本机映像。构建成功,但启动生成的可执行文件失败,出现以下异常:
这不是我遇到的第一个例外。在此之前我得到:我用这里
Can't find bundle for base name com/sun/glass/ui/win/themes, locale en_US
的答案解决了这个问题。
我严格按照Gluon 文档中的说明进行操作。
我做过的事情:
- 下载 Gluons GraalVM 版本并解压
- 设置 GRAALVM_HOME
- 下载 VisualStudio 2019 CE 并安装所需组件
- 执行
vcvars64.bat
- 克隆最新的胶子样本
cd HelloFX
- mvn clean gluonfx:编译
- mvn gluonfx:链接
这一切都奏效了。但最后一步 - 运行应用程序 - 失败了:mvn gluonfx:nativerun
到目前为止我做了什么:
- 更新了
gluonfx.maven.plugin.version
从1.0.7
到1.0.8
- 使用 GraalVM CE 21.3.0 并添加
native-image-installable-svm-java11-windows-amd64-21.3.0.jar
- 并得到相同的错误 - 添加
<bundlesList>com.sun.glass.ui.win.themes</bundlesList>
到 gluonfx-maven-plugin 配置
操作系统是 Windows 10 Pro 64 位。
java - GluonFX、本机图像和 java.lang.ClassNotFoundException:javafx.scene.web.WebView
我正在尝试使用 GluonFX 插件和 Maven 在 Windows 下将我的 javaFX 程序转换为本机图像。
由于我使用 javafx WebView,生成的 exe 文件在执行时告诉我错误:
Mine 是一个使用 WebView 和 WebEngine 的简单程序,在 JVM 下功能齐全,在 NetBeans 中。
是否有使用 WebView 并使用 GluonFX 转换为本机图像的程序示例?
这个问题对我来说似乎无法克服,我寻求帮助。以下是错误信息:
pom 文件是由 NetBeans 生成的,而编译是通过终端完成的:
- VS 2019 的 x64 原生工具提示
我的java程序:
绒球: