将JavaFX项目导出到Android

3

我有一个使用JavaFX开发的项目,想要在Android上运行它。我已经使用了JavaFXports并生成了所需的apk文件。同时,我成功地将apk文件安装到模拟器上。但是我需要源代码。换句话说,我希望能够在模拟器上调试项目。


可以使用JavaFX源代码从IDE和Android Monitor调试项目,至少在真实的Android设备上运行的项目中可以这样做。你正在使用哪个模拟器? - José Pereda
从Android Studio Nexus_5X_API_21。 - Alexander Mladzhov
如果您正在使用带有JavaFX项目的Android Studio,则可能调试将直接开箱即用。您尝试过吗? - José Pereda
但是你最初是如何创建apk的呢?使用JavaFXPorts插件在不同于Android Studio的IDE中吗? - José Pereda
我使用了这篇教程https://breekmd.wordpress.com/2015/03/18/javafx-on-android-with-javafxports/。 - Alexander Mladzhov
显示剩余2条评论
1个回答

6
要调试使用Gluon插件在IDE(NetBeans、IntelliJ或Eclipse)中创建并部署到Android模拟器的JavaFXPorts/Gluon Mobile应用程序,请按照以下步骤操作:
1. 从您的IDE创建JavaFX移动应用程序
您可以使用适用于IDE的Gluon 插件。使用内置模板之一创建您的项目,或者使用此处提供的许多示例之一。
假设您使用了Single View项目。提供名称并运行应用程序。

2. 创建apk文件

运行任务 Tasks->Android->Android 来创建apk文件(或在命令行中运行 ./gradlew android)。

3. 运行模拟器

为此,打开Android Studio,从模板创建一个新的空应用程序,然后点击运行。它会要求您选择一个设备。然后创建一个新的虚拟设备并使用ARMEABI镜像。

armeabi image

虽然这个镜像非常慢,但x86-64镜像无法用于部署apk(请参见INSTALL_FAILED_NO_MATCHING_ABIS error)。因此,如果您无法获得真实设备进行测试,据我所知,这是唯一的解决方案。

如果需要,下载armeabi镜像。一旦拥有它,启动应用程序将需要相当长的时间。但只需要模拟器,所以不需要等待,我们可以关闭模拟器,在关闭Android Studio之前,获取镜像名称,比如说Nexus_5_API_23

在命令行中,进入<android sdk>/tools并运行:

./emulator -avd Nexus_5_API_23

它将会显示出来,你会看到类似于以下内容:

$ ./emulator -avd Nexus_5_API_23
emulator: Listening for console connections on port: 5554
emulator: Serial number of this emulator (for ADB): emulator-5554

4. 部署apk文件

在命令行中,进入<android sdk>/platform-tools目录并运行以下命令:

adb -s emulator-5554 install <path.to>/<your.app>.apk

在您的项目中,您可以在/builds/javafxports/android/<your.app>.apk找到apk文件。

$adb -s emulator-5554 install GluonDebugEmulator.apk                                         
[100%] /data/local/tmp/GluonDebugEmulator.apk                                                                                       
    pkg: /data/local/tmp/GluonDebugEmulator.apk
Success

5. 在模拟器上运行apk

6. 打开 Android 设备监视器

前往 <android sdk>/tools 并运行 monitor。在左侧顶部,您应该会看到模拟器设备和进程列表。在那里找到您的应用程序包名称,选择它并查看应用程序使用的端口(8700)。

monitor

7. 在您的IDE上附加调试器

最后,回到您的IDE,在调试选项下,使用localhost和8700附加调试器。这是针对NetBeans的:

点击“确定”按钮,将启动调试进程。

8. 启动调试

在您的代码中添加断点,例如在按钮事件处理程序中,并单击运行在模拟器上的应用程序中的按钮。您会看到它停在断点处。

debugging

这就是它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接