我正在尝试使用JavaFXPorts
和RoboVM-cocoatouch
,但我无法使用RoboVM
中的本地内容,例如UIButton
。
我的build.gradle文件中有以下依赖项:
classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b5'
classpath 'org.robovm:robovm-cocoatouch:1.0.0'
我尝试导入org.robovm.apple.uikit.*
,但eclipse
无法找到包裹。
我必须做些什么才能使用JavaFXPorts和RoboVM的原生内容?
答案 0 :(得分:1)
答案简短:
您需要创建一个文件夹src/ios/java
,您的iOS特定源文件应该位于该文件夹中。此文件夹中的源文件自动设置了正确的类路径,因此您可以在那里使用RoboVM类。
答案很长:
除了默认的主要源集之外,jfxmobile插件还为插件支持的每个平台添加了一个源集:android,ios和desktop。每个源集都有一个src/PLATFORM/java
和src/PLATFORM/resources
目录,其中分别包含平台特定的源文件和资源文件。
平台无关代码必须写在文件夹src/main/java
内,而平台特定代码必须写在匹配的平台源文件夹中。例如,在您的情况下,iOS代码应放在src/ios/java
文件夹中。
该插件还确保为每个源集正确配置依赖项。此外,当您例如生成IPA时,它将仅包含来自main和ios源集的类文件。
有关jfxmobile项目结构的更多信息,请查看此网页上的“结构”部分:http://javafxports.org/page/Setting_up
您可以在java插件文档中阅读有关gradle源集的更多信息:http://gradle.org/docs/current/userguide/java_plugin.html