2017-01-06 12 views
1

В настоящее время я пытаюсь объединить следующие технологии:Как настроить приложение ГЛЮОНА с Котлин и Tornado FX

  • глюоны (Мобильные)
  • Gradle (зависимость глюонов, так как они полагаются на него)
  • Котлин (потому что это хороший язык, который я хочу, чтобы погрузиться в)
  • Tornado FX (я предполагаю, что это для JavaFX, чем Анко для Android)

ISSU e, что я относительно новичок в Intellij-IDEA и у меня проблемы с настройкой, хотя я, однако, что файл build.gradle был достаточно подходящим.

Вот что мой build.gradle выглядит так далеко:

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' 
    } 
} 

Я в аренду удалось остановить IDE жаловаться на Котлин. Я преобразовал простой класс приложения, чтобы выглядеть следующим образом:

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() 
    } 
} 

Но теперь я застрял, потому что зависимость к Tornado FX не решен должным образом. Я хотел создать View и начал с

package eu.dzim.test 

import tornadofx.View 
import tornadofx.borderpane 

class Root : View("My View") { 
    override val root = borderpane { 

    } 
} 

Но импорт, как import tornadofx.View никогда не разрешаются.

Есть проблема, потому что Торнадо, похоже, использует Kotlin 1.0.5, а я хочу использовать 1.0.6? (Хотя это не имеет никакого эффекта, если я могу изменить его, считая (все еще не используется, потому что «нерешенным») View ...)

С уважением, Daniel

+0

Я попробовал ваш точный файл сборки без каких-либо изменений, и я был в состоянии импортировать его в IDEA без проблем. Можете ли вы попытаться запустить «град-сборку» из командной строки, чтобы убедиться, что это просто проблема с IDEA или что-то еще? –

+0

Самое смешное: с консоли он и строит, и запускается. Но IDE настаивала, что она была неправильно настроена и не могла использовать Kotlin и Tornado из коробки ... – dzim

+0

@edvin, поэтому у вас есть другие плагины, библиотеки и т. Д.уже настроен до импорта? Я начал с новой установки IDEA и должен был преобразовать оригинальную Java в Kotlin. И там начались проблемы. – dzim

ответ

1

Похоже, что-то пошло не так, когда IDEA проанализирован создать файл и сгенерировать недопустимые метаданные, возможно, из-за дополнительных изменений в конфигурацию сборки. Для того, чтобы регенерировать метаданные, выполните следующие действия

  • Закрыть IDEA
  • Удалить папку .idea внутри папки проекта
  • Импорт проекта

На этот раз метаданные будут генерироваться из уже полный файл сборки, и он должен быть настроен правильно.

Также обратите внимание, что плагин Kotlin по умолчанию будет компилировать источники Kotlin в src/main/kotlin. Либо изменить исходную папку или konfigure плагин Котлин для компиляции источников в src/main/java:

sourceSets { 
    main.kotlin.srcDirs += 'src/main/java' 
}