Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 建立多平台项目_Kotlin_Kotlin Multiplatform - Fatal编程技术网

Kotlin 建立多平台项目

Kotlin 建立多平台项目,kotlin,kotlin-multiplatform,Kotlin,Kotlin Multiplatform,考虑到Kotlin 1.2引入的Kotlin平台通用我正在尝试构建我的第一个通用.class文件,因此我做了以下工作: main.kt: package hello fun main() { println("kotlin!") } gradle.build: group 'h' version 'prn' buildscript { ext.kotlin_version = '1.2.0' repositories { mavenCentral

考虑到
Kotlin 1.2
引入的
Kotlin平台通用
我正在尝试构建我的第一个通用
.class
文件,因此我做了以下工作:

main.kt

package hello

fun main() {
    println("kotlin!")
} 
gradle.build

group 'h'
version 'prn'

buildscript {
    ext.kotlin_version = '1.2.0'

    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'kotlin-platform-common'

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version"
}

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

jar {
    manifest {
        attributes 'Main-Class': 'hello.MainKt'
    }
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
然后我运行
gradlebuild

Q1-我找不到任何生成的
.class
文件?如何生成它,我应该在哪里找到它

Q2-我生成了一个
.jar
文件,但一旦我尝试运行它,就出现了一个错误:

错误:无法找到或加载主类hello.MainKt

我尝试使用下面的2个选项运行它,但在bot中遇到了相同的错误:

备选案文1:

kotlin -cp <filename>.jar hello.MainKt
kotlin-cp.jar hello.MainKt
备选案文2:

java -jar <filename>.jar
java-jar.jar
项目结构和错误如下图所示:


在Kotlin 1.2中,通用模块不生成二进制文件(如.class文件),只生成元数据文件。这是正确的,即使您没有在任何地方使用
expect
关键字

因此,您必须创建另一个模块,其中包括以下内容:

apply plugin: 'kotlin-platform-jvm'
JVM模块还需要一个
expectedBy
条目,该条目位于
dependencies
中,用于您的公共模块。另外,您可能需要一个相应的JS模块


最好让IntelliJ为您创建整个多平台项目,然后编辑Gradle文件以适应,但本页列出了手动步骤:

这是一个无效的主方法signature@1blustone我得到了同样的结果,尽管我将其更改为
funmain(args:Array){println(“kotlin!”)}