将 JavaFX 项目导出到 android

2023-11-29

我有一个项目是在JavaFX并想在 Android 中运行它。我用过JavaFXports并生成了所需的apk。我还设法在模拟器上安装了 apk。但我需要来源(源代码)。换句话说,我希望能够在项目在模拟器上运行时对其进行调试。


要调试您使用 IDE(NetBeans、IntelliJ 或 Eclipse)的 Gluon 插件创建并部署到 Android 模拟器(使用 Android Studio)的 JavaFXPorts/Gluon Mobile,请按照以下步骤操作:

1. 从 IDE 创建 JavaFX 移动应用程序

为此,您可以使用 Gluonplugin为您的IDE。使用内置模板之一来创建您的项目,或者使用众多可用示例之一here.

假设您使用 Single View 项目。提供名称并运行应用程序

2.创建apk

运行任务Tasks->Android->Android创建 apk(或在命令行上运行./gradlew android).

3.运行模拟器

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

armeabi image

虽然此映像确实非常慢,但 x86-64 映像无法部署 apk(请参阅 INSTALL_FAILED_NO_MATCHING_ABISerror)。因此,如果您无法获得真实的设备来测试它,据我所知,这是唯一的解决方案。

如果需要,请下载 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

您可以在您的项目中找到该 apk/builds/javafxports/android/<your.app>.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设备监视器

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

monitor

7. 将调试器附加到 IDE 上

最后,返回 IDE,在“调试选项”下,使用 localhost 和 8700 连接调试器。这适用于 NetBeans:

并单击“确定”。调试过程将开始。

8.开始调试

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

debugging

就是这样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 JavaFX 项目导出到 android 的相关文章

  • 如何在 Android 上的 HttpPost 中发送 unicode 字符

    我试图在我的应用程序中允许多语言支持 这会发出 HTTP post 来上传新消息 我需要做什么才能支持日语和其他非拉丁语语言 我的代码目前看起来像这样 note the msg string is a JSON message by the
  • 尝试在没有 GatewayIntent 的情况下访问消息内容

    我希望每当我写一条打招呼的消息时 机器人都会在控制台中响应一条消息 但它只是给我一个错误 JDA MainWS ReadThread WARN JDA Attempting to access message content without
  • 在 Android 中使用 iText 读取或打开 PDF 文件

    我是 Android 应用程序开发新手 使用 iText 我完成了 PDF 创建并在创建的文件上写入 现在我想阅读该 PDF 文件 如何使用 iText 打开或阅读 PDF 文件 例子将是可观的 那么提前 哪个是渲染 PDF 文件的最佳库
  • 如何覆盖日期选择器的高度和宽度以填充父布局

    我有一个活动包含一个日期选择器 我想设置DatePicker适合屏幕 我试过这个答案 https stackoverflow com questions 6674667 how to customize date pickers width
  • 如何在java中使jpeg无损?

    有没有人可以告诉我如何使用编写 jpeg 文件losslessjava中的压缩 我使用下面的代码读取字节来编辑字节 WritableRaster raster image getRaster DataBufferByte buffer Da
  • 如何从SurfaceView绘制到Canvas?

    我正在尝试做简单的画家 问题是Android看起来有三个独立的Canvas并给我它来顺序绘制 我用以下方式制作了用户界面SurfaceView 把霍尔德从中拿走 Override protected void onCreate Bundle
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • 如何使用 Mockito 和 Junit 模拟 ZonedDateTime

    我需要模拟一个ZonedDateTime ofInstant 方法 我知道SO中有很多建议 但对于我的具体问题 到目前为止我还没有找到任何简单的解决办法 这是我的代码 public ZonedDateTime myMethodToTest
  • 如何在 WebView 中添加 JavaScript 函数并稍后在提交 reCAPTCHA 时从 HTML 调用它

    我在 WebView 中添加一个 JavaScript 函数 如下所示 Kotlin val webView findViewById R id webview as WebView webView getSettings setJavaS
  • 使用 Java 从 S3 上的文件在 S3 上创建 zip 文件

    我在 S3 上有很多文件 需要对其进行压缩 然后通过 S3 提供压缩文件 目前 我将它们从流压缩到本地文件 然后再次上传该文件 这会占用大量磁盘空间 因为每个文件大约有 3 10MB 而且我必须压缩多达 100 000 个文件 所以一个 z
  • Android:单一活动,多个视图

    我不是 Android 专业人士 尽管我开发了一个包含 50 多个活动的应用程序 这使得该应用程序非常庞大 经过8周的开发 现在出现了一些问题 导致应用程序难以维护和升级 我正在处理的主要问题是 我无法将对象引用传递给活动的构造函数 事实上
  • 来自客户端的超时 Web 服务调用

    我正在使用 RestEasy 客户端调用网络服务 一项要求是 如果调用运行时间超过 5 秒 则中止 超时调用 我如何使用 RestEasy 客户端实现这一目标 我只看到服务器端超时 即如果在一定时间内未完成请求 Rest Easy 网络服务
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 如何将实例变量传递到 Quartz 作业中?

    我想知道如何在 Quartz 中外部传递实例变量 下面是我想写的伪代码 如何将 externalInstance 传递到此作业中 public class SimpleJob implements Job Override public v
  • Java中获取集合的幂集

    的幂集为 1 2 3 is 2 3 2 3 1 2 1 3 1 2 3 1 假设我有一个Set在爪哇中 Set
  • Android应用程序kill事件捕获

    我想在我的应用程序被终止时执行一些操作 可以使用哪种方法来实现此目的 我正在开发 Android 5 0 这个问题的关键在于 您必须了解您的申请是否可以收到任何 当您的应用程序在任何情况下被终止时的额外回调 下面的答案是由德文连线 http
  • Java中有类似分支/跳转表的东西吗?

    Java有类似分支表或跳转表的东西吗 分支表或跳转表是 根据维基百科 http en wikipedia org wiki Branch table 用于描述使用分支指令表将程序控制 分支 转移到程序的另一部分 或可能已动态加载的不同程序
  • 使用支持库中的 BottomSheet 时如何调暗背景?

    怎样才能让背景像显示的那样变暗here https material design storage googleapis com publish material v 8 material ext publish 0Bzhp5Z4wHba3
  • java中如何找到class文件的包

    我正在编写一个使用 class 文件的 java 程序 我希望能够读取文件系统上的 class 文件 使用 InputStream 并确定它所在的包 该 class 文件可能不在一个好的包目录结构中 它可能位于某个随机位置 我怎样才能做到这
  • 使用 eclipse IDE 配置 angularjs

    我想开始使用 AngularJs 和 Java Spring 进行开发 我使用 Eclipse 作为 IDE 我想配置我的 Eclipse 以使这些框架无缝工作 我知道我可能要求太多 但相信我 我已经做了很多研究 你们是我最后的选择 任何帮

随机推荐

  • 如何使用 AFNetworking AFHTTPRequestOperationManager 显示进度条

    当我从 url 下载 JSON 时 我试图显示进度栏 JSON 正在正确下载 但我不确定如何显示进度栏 我尝试过使用UIProgressView但它不显示在屏幕上 任何建议 将不胜感激 CGFloat width UIScreen main
  • XPage:IBM OneUI 与 Bootstrap

    在不久的将来 我必须更新一个更大的 XPage 应用程序 开发时间超过三年 现在运行在Domino Server 8 5 3 FP6 to Domino Server 9 在此应用程序中我使用IBM OneUIv2 1但我不确定是否应该进一
  • R:命名矩阵的不同方法

    我正在使用 R 编程语言 在R的 数据集 库中 有一个名为 eurodist 的数据集 其中包含每个城市组合之间的距离 library datasets 然后可以将该数据集转换为 矩阵 eurodist as matrix eurodist
  • React Context 是道具钻探的解药吗?

    如果 React Context API 旨在用于传递全局变量 那么我们为什么要使用它们来替代从父组件到子组件传递 props prop 钻取 由于大多数传递的 props 并不意味着在应用程序范围内 即全球范围内 可用 上下文中定义的变量
  • 如何在 Java 中将图像/文件上传到 Firebase 存储?

    我正在开发一个功能 需要使用 java 将图像 文件上传到 firebase 存储并将其公开为 API 我已经在 Angular 4 TypeScript 中实现了此功能 但现在我需要这个方法作为 Java Rest API 这样我的同伴也
  • Android 上的 Apache HttpClient 产生 CertPathValidatorException (IssuerName != subjectName)

    我正在开发一个Android应用程序来访问一些battle net https eu battle net 帐户数据 对于魔兽世界 我正在使用org apache http client HttpClient这样做 这是我正在使用的代码 p
  • 具有不同调度程序间隔的气流ExternalTask​​Sensor

    目前我有两个 DAG DAG A 和 DAG B 两者都运行schedule interval timedelta days 1 DAG A 有一个 Task1 通常需要 7 小时才能运行 而DAG B只需要3个小时 DAG B 有一个Ex
  • 在 Grails 3.x 中安装和使用 MongoDB

    我一直在关注曼宁Grails 的实际应用 但是他们关于配置数据源的部分对于 Grails 3 0 3 来说已经过时了 我的意图是从H2的默认数据源转换为MongoDB版本3 0 2 Google 搜索产生了相互矛盾的结果 许多答案通常是针对
  • 避免在 JavaScript 中嵌套 if [重复]

    这个问题在这里已经有答案了 我需要检查是否auth runtime status等于 200 但是auth runtime是undifend 有没有更优雅的方法在nodejs中做到这一点 if auth runtime if auth ru
  • AJAX 发布错误:拒绝设置不安全标头“连接”

    我有以下自定义 ajax 函数 可将数据发送回 PHP 文件 每次发布数据时 我都会收到以下两个错误 拒绝设置不安全标头 Content length 拒绝设置不安全标头 连接 Code function passposturl url1
  • 使用 Google Drive API v3 移动文件

    我正在尝试使用 Google Drive API v3 将文件从一个文件夹移动到另一个文件夹 我找到了文档如何做到这一点here 我使用了文档页面中的 NET 示例代码并创建了一个如下所示的方法 public ActionResult Mo
  • CodeIgniter活动记录调用多个存储过程的问题

    class Registration model extends CI Model function construct parent construct function check email availability email sq
  • 将日期字符串转换为 Int Swift

    我正在尝试转换字符串 let time 7 30 为整数 let hour Int 7 let minutes Int 30 我目前正在循环字符串 for char in time characters 但我不知道如何将 char 转换为
  • 在 JavaScript 中捕获 302 FOUND

    我使用 jQuery 向我的服务器发出 AJAX POST 请求 该请求可以返回状态为 302 的 HTTP 响应 然后 JavaScript 仅向此 URL 发送 GET 请求 而我想将用户重定向到此响应中的 URL 这可能吗 由于给出的
  • 为什么我的golang无锁队列总是卡在那里?

    这是我的代码 package main import sync atomic unsafe sync fmt time const MAX DATA SIZE 100 lock free queue type Queue struct he
  • 通过过滤度量值在 MDX 中定义计算成员

    我需要在 MDX 中定义一个计算成员 这是 SAS OLAP 但我很感谢使用不同 OLAP 实现的人员提供的答案 新度量的值应通过应用附加过滤条件根据现有度量计算得出 我想通过一个例子会更清楚 现有衡量标准 总流量 现有维度 方向 入 或
  • 如何使用java代码在google中进行搜索?

    如何使用java代码在google中进行搜索 我会告诉你使用他们的其中之一API 不幸的是 似乎不存在用于搜索的 因此 你必须使用HtmlUnit模拟浏览器并查看其结果 显然 您可以采取更困难的方法并自己执行一些 HTTP 查询 但谁会这样
  • 如何添加对WinForm项目的引用?

    我有几个不同解决方案的 winform 项目 如果我在同一个解决方案中有两个 winform 项目 当我添加引用时 我会进入 项目 选项卡 从那里我可以引用我的其他项目 但是 当 winform 项目位于不同的解决方案中时 如何引用它呢 当
  • Repast:如何根据具体情况获取特定的代理集?

    我之前曾与 Netlogo 合作 有一些非常好的内置方法可以让我从总体中过滤和控制所需的代理 看 http ccl northwestern edu netlogo docs dictionary html agentsetgroup 例如
  • 将 JavaFX 项目导出到 android

    我有一个项目是在JavaFX并想在 Android 中运行它 我用过JavaFXports并生成了所需的apk 我还设法在模拟器上安装了 apk 但我需要来源 源代码 换句话说 我希望能够在项目在模拟器上运行时对其进行调试 要调试您使用 I