JavaFX打包到Android上

让JavaFX运行到移动平台一直是社区努力完成的事。

当然,目前已经可以让JavaFX运行到Android和IOS平台了,下面我们来看看如何打包自己的JavaFX项目到Android平台。

首先下载下面这个示例: http://pan.baidu.com/s/1bnwIYrP

这个示例是我从打包官方示例的例子里修改而来,用于打包一个简单的JavaFX程序。

示例结构如下:

由目录结构可以看到,示例是采用gradle来构建的。gradle也是国外非常火的自动化构建工具。

在第一次打包的时候,需要双击gradlew.bat,会下载一系列的库和包,这里可能会花不少的时间,大家需要等等。

打包的时候需要注意以下的步骤:

1.JavaFX的项目代码放在src/main/java/文件夹下面

2.JavaFX需要的资源放在src/main/resource/文件夹下面

3.修改build.gradle文件,里面的mainClassName表示的JavaFX主类的包结构,applicationPackage表示生成的Android的APK程序的包名,当然我们也可以指定自己的xml,这个是后面需要研究的事。

4.在环境变量里添加ANDROID_HOME,用于指定AndroidSDK的目录。

在完成了上面的操作后,通过cmd进入到示例文件夹的目录里,运行gradle run,看看能否运行,如果能运行,则执行gradle android来打包我们的APK程序。

打包好的APK放在build/javafxports/android目录下面。

另外,有一个重要的点,根据官方说明,JavaFX程序需要通过以下代码来设置Stage的大小,不然在Android设备上的程序分辨率和显示会有问题。

Rectangle2D bounds = Screen.getPrimary().getVisualBounds();
Scene scene = new Scene(root, bounds.getWidth(), bounds.getHeight());

在Android上运行效果如下:

点击颜色,下面会同步显示文本,运行效果良好。

本人之前用JavaFX写的SLG的示例,也可以打包到手机上运行,只有个别问题,当然是因为没有针对移动设备的分辨率进行调整。

2 thoughts on “JavaFX打包到Android上”

  1. 行gradle android 时报错
    * What went wrong:
    Failed to notify task execution graph listener.
    > org/gradle/mvn3/org/sonatype/aether/RepositorySystemSession

    1. 已经不建议用上面的方式的来打包了,现在JavaFX在移动平台的部署已经归Gluon来开发。可以下载Netbeans,安装Gluon Mobile插件,直接创建一个多平台的JavaFX项目,更加简单易用。

发表评论

电子邮件地址不会被公开。