J'essaie actuellement de combiner les technologies suivantes:Comment mettre en place une application gluons avec Kotlin et Tornado FX
- gluons (Mobile)
- Gradle (dépendance de gluons, car ils comptent sur elle)
- Kotlin (parce que c'est une langue belle que je veux plonger dans)
- Tornado FX (je suppose que c'est pour JavaFX, ce qui est Anko pour Android)
de la délivrance e est, que je suis relativement nouveau à Intellij-IDEA et ai des problèmes en l'installant correctement, bien que je le pense, que le fichier build.gradle
était assez approprié.
Voici ce que mon build.gradle
semble jusqu'à présent:
buildscript {
ext.kotlin_version = '1.0.6'
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'org.javafxports.jfxmobile'
apply plugin: 'kotlin'
// apply plugin: 'com.android.application'
// apply plugin: 'kotlin-android'
repositories {
jcenter()
mavenCentral()
maven {
url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
}
}
mainClassName = 'eu.dzim.test.Main'
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
// compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
compile 'com.gluonhq:charm:4.2.0'
compile 'no.tornado:tornadofx:1.5.9'
compile 'no.tornado:tornadofx-controls:1.0.4'
}
jfxmobile {
downConfig {
version = '3.1.0'
// Do not edit the line below. Use Gluon Mobile Settings in your project context menu instead
plugins 'display', 'lifecycle', 'statusbar', 'storage'
}
android {
manifest = 'src/android/AndroidManifest.xml'
}
}
I à bail réussi à arrêter l'IDE pour se plaindre de Kotlin. Je me suis converti une simple classe d'application pour ressembler à ceci:
package eu.dzim.test
import com.gluonhq.charm.down.Platform
import javafx.application.Application
import javafx.scene.Scene
import javafx.scene.layout.BorderPane
import javafx.stage.Screen
import javafx.stage.Stage
/**
* Created by daniel on 06.01.17.
*/
class Main : Application() {
@Throws(Exception::class)
override fun start(stage: Stage) {
var width = -1.0
var height = -1.0
if (Platform.isDesktop()) {
width = 480.0
height = 640.0
stage.title = "Test"
}
val primaryScreen = Screen.getPrimary()
val visualBounds = primaryScreen.visualBounds
if (width < 0 || height < 0) {
width = visualBounds.width
height = visualBounds.height
}
val root = BorderPane()
val scene = Scene(root, width, height)
stage.scene = scene
stage.show()
}
}
Mais maintenant, je suis coincé, parce que la dépendance à Tornado FX n'est pas résolu correctement. Je voulais créer un View
et a commencé avec
package eu.dzim.test
import tornadofx.View
import tornadofx.borderpane
class Root : View("My View") {
override val root = borderpane {
}
}
Mais les importations comme import tornadofx.View
ne sont jamais résolus.
Y at-il un problème, parce que Tornado semble utiliser Kotlin 1.0.5
, alors que je veux utiliser 1.0.6
? (Bien que cela n'a pas d'effet, si je le change, en ce qui concerne le (non encore utilisée, parce que « non résolue ») View
...)
Cordialement, Daniel
J'ai essayé votre fichier de compilation exacte sans modifications, et j'ai pu importer dans IDEA sans problème. Pouvez-vous essayer d'exécuter "gradle build" à partir de la ligne de commande pour voir si c'est simplement un problème IDEA ou autre chose? –
La chose amusante est: à partir de la console à la fois construire et a commencé. Mais l'IDE a insisté, il n'était pas correctement configuré et ne pouvait pas utiliser Kotlin et Tornado out-of-the-box ... – dzim
@edvin donc vous avez d'autres plugins, bibliothèques, etc.déjà mis en place avant l'importation? J'ai commencé avec une nouvelle installation d'IDEA et j'avais besoin de convertir le Java original en Kotlin. Et là les problèmes ont commencé. – dzim