在Android中使用外部库运行JavaFX应用程序?

在Android中使用外部库运行JavaFX应用程序?,android,javafx,javafx-2,rxtx,javafxports,Android,Javafx,Javafx 2,Rxtx,Javafxports,我刚刚开发了一个JavaFx应用程序,它使用RXTX库进行串行通信,将来将使用Bluecove进行蓝牙。据我所知,有一些方法可以在Android设备上运行JavaFx应用程序,因此我开始了研究 第一个选项是运行带有Android应用程序“Java Manager”的“jar”打包应用程序。这里的问题是,我不知道如何处理外部库,因为android设备上没有一个标准的JVM,我可以在那里放置它们。 我发现了这个项目“”,但它似乎是面向Android应用程序的 所以当我找到“”时,我试着用它迈出第一步

我刚刚开发了一个JavaFx应用程序,它使用RXTX库进行串行通信,将来将使用Bluecove进行蓝牙。据我所知,有一些方法可以在Android设备上运行JavaFx应用程序,因此我开始了研究

第一个选项是运行带有Android应用程序“Java Manager”的“jar”打包应用程序。这里的问题是,我不知道如何处理外部库,因为android设备上没有一个标准的JVM,我可以在那里放置它们。 我发现了这个项目“”,但它似乎是面向Android应用程序的

所以当我找到“”时,我试着用它迈出第一步。这个项目似乎是我需要的,但我是一个Android新手,我发现文档有点混乱,所以我不确定从哪里开始。此外,我还不确定我是否可以用这种方法使用Android中的java库


有人知道我假装的是可行的吗??在这种情况下,我应该遵循哪些步骤???

您已经可以尝试JavaFXPorts插件了。它是在continuos开发中,但是最近的版本已经足够成熟,可以毫无问题地使用它

请看一下入门的基本要求。您将需要JDK8u40+、Gradle 2.2+、Android SDK和Android构建工具

一旦你把一切都准备好了,你就可以试试这个

另外,我建议您看看NetBeans。基本上,它将为您创建一个新的空JavaFX项目,您将能够构建它并将其部署到您的桌面、Android和iOS平台上

查看
build.gradle
文件:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b4'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
}

mainClassName = 'org.test.javafxports.TestJavaFX'

jfxmobile {
    ios {
        forceLinkClasses = [ 'org.test.javafxports.**.*' ]
    }
}
首先,您只需要更新插件版本。检查最后一个:1.0.0-b8

在桌面上构建并运行,或者运行诸如AndroidStall之类的任务来生成apk并将其部署到Android手机上

一旦您测试了它,并且一切正常,您就可以开始添加项目的代码了

回到您的问题,是的,您可以将任何第三方jar添加到项目中

基本上,您只需要在gradle文件上添加依赖项。您可以对本地文件或外部存储库使用
编译
运行时

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b8'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
}

dependencies {
    compile files('lib/<your local jar>.jar')
    compile 'org.glassfish:javax.json:1.0.4'
    androidCompile 'org.glassfish:javax.json:1.0.4'
}

mainClassName = 'org.test.javafxports.TestJavaFX'

jfxmobile {
    ios {
        forceLinkClasses = [ 'org.test.javafxports.**.*' ]
    }
}
事实上,有了jfxmobile插件和这个库,游戏已经成功地移植到Android()和iOS()

dependencies {
    compile 'com.gluonhq:charm-down-common:0.0.1'
    androidRuntime 'com.gluonhq:charm-down-android:0.0.1'
    desktopRuntime 'com.gluonhq:charm-down-desktop:0.0.1'
}