【发布时间】:2018-03-27 13:25:57
【问题描述】:
创建一个全新的 MultiView FXML 项目,然后在 Gradle 中添加 Java9 必需品:
buildscript {
repositories {
jcenter()
google()
maven{
url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
}
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:2.0.5'
}
}
...
sourceCompatibility = 1.8
targetCompatibility = 1.8
...
dependencies {
compile 'com.gluonhq:charm:4.4.0-jdk9'
androidRuntime 'com.gluonhq:charm:4.4.1'
compile 'com.airhacks:afterburner.mfx:1.6.3'
// Added because of javax.annotation.PostConstruct Java9 issues
compile group: 'javax.xml.ws', name: 'jaxws-api', version: '2.2.6'
}
在线程“JavaFX 应用程序线程”java.lang.IllegalStateException 中导致 [SUB] 异常:在使对话框可见之前必须显示舞台。
该项目在桌面和 Android 上按预期运行,但在 iOS 模拟器和设备上不运行。我尝试了很多东西,但是由于这个错误出现在新创建的项目上,让我相信这是由 gluon-mobile 和 Java9 的相互作用引起的。
奖励:仅将 jfxmobile-plugin 更改为 2.0.18 甚至编译都失败:
[15:08:15:141] com.gluonhq.higgs.Higgs:仍在编译... 8823 剩下的课。
[15:08:25:143] com.gluonhq.higgs.Higgs:仍然 正在编译...剩下 4152 个类。
[15:08:34:389] com.gluonhq.higgs.Compiler:第 0 轮完成一半 java.lang.StackOverflowError
在 java.base/java.util.HashMap.putVal(HashMap.java:642)
在 java.base/java.util.HashMap.put(HashMap.java:612)
在 java.base/java.util.HashSet.add(HashSet.java:220)
在 com.gluonhq.higgs.DependencyGraph.visitReachableNodes(DependencyGraph.java:170)
【问题讨论】:
-
你能用
compile 'javax.annotation:javax.annotation-api:1.3.2'代替'jaxws-api'吗? -
@JoséPereda Same console log
-
你能再试一次 2.0.18 但使用 Charm Down 版本
3.7.2? -
@JoséPereda 它已经设置为
3.7.2
标签: ios java-9 gluon-mobile