问题标签 [kotlin-multiplatform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
628 浏览

kotlin - 设置多平台项目

考虑到Kotlin 1.2介绍kotlin-platform-common我正在尝试构建我的第一个公共.class文件,所以我做了以下事情:

main.kt

gradle.build

然后我跑gradle build

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

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

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

我尝试使用下面的 2 选项运行它,但对于 bot 得到了相同的错误:

选项1:

选项 2:

项目结构和错误如下图所示:

在此处输入图像描述

0 投票
1 回答
2640 浏览

kotlin - IntelliJ 中的 Kotlin 多平台 JVM 类型不匹配

我有一个项目,其中包含以下模块:

  • 常见的
  • common-js
  • 通用 jvm
  • 后端
  • 网络

这个想法是我将我的共享(kotlin)代码(主要是模型)放在共同的位置,可以在 kotlin 驱动的后端和使用最近引入的多平台支持的 javascript 驱动的 webapp 中使用。为此,我在 Intellij 中创建了一个新的多平台应用程序,并向其中添加了后端和 Web 模块。

公共模块中的示例类:

后端是一个简单的 Spring Boot 应用程序。它依赖于 common-jvm 项目:

现在,当我运行时gradle bootRun,应用程序启动并且工作正常。但是,当我尝试使用 IntelliJ 运行相同的应用程序时,会出现如下错误:

错误:(68, 26) Kotlin: 类型不匹配: 推断类型是kotlin.Longjava.lang.Long预期
错误:(68, 65) Kotlin: 类型不匹配: 推断类型是kotlin.String!java.lang.String预期

在这一行中,我尝试Show使用来自 json 源的数据创建模型实例:

我正在使用 Kotlin 1.2.10 和 spring boot 1.5.9.RELEASE。

有谁知道这是什么原因以及如何解决的?我尝试-Xmulti-platform在后端模块的项目结构中添加额外的命令行参数,但这也不起作用。

0 投票
3 回答
4338 浏览

kotlin - 将 Gradle 子项目与 Kotlin 多平台一起使用

我正在使用 Kotlin 多平台(JVM 和 JS),它在 IDEA 中创建了三个项目demodemo-jsdemo-jvm.

我想将通用代码拆分为更多的子项目/子模块。假设我添加commonmod;我如何使它编译?

对于 , 现在的错误gradle run -p demo-jvm是:

但我认为我这样做从根本上是错误的,因为我不知道什么应该取决于什么(尽管我尝试了很多迭代)。如果我解决了这个错误,我会得到其他错误,然后再得到其他错误,直到我回到这个错误。


作为一个最小但仍然很大的例子,我有:

演示/settings.gradle

演示/build.gradle

演示/演示-jvm/settings.gradle

演示/演示-jvm/build.gradle

演示/演示-js/settings.gradle

演示/演示-js/build.gradle

演示/commonmod/settings.gradle

演示/commonmod/build.gradle

0 投票
1 回答
124 浏览

ios - kotlin 本机未知主机目标

我在 CLion IDE 中创建了一个新的 Hello World Kotlin Native 项目,但我得到了。kotlin native unknown host target 错误。

因为我使用的是 Windows,而 KONANC 仅在 macOS 和 Linux 上受支持。如何修复此错误并在 windows 上运行 Kotlin Native 项目?

我遵循了这个Kotlin Native Tutorial

0 投票
2 回答
529 浏览

node.js - 使用 Kotlin 多平台时,如何在 Cloud Functions for Firebase 中包含简单的 javascript 文件作为节点依赖项?

我想包含一个 javascript 文件作为模块依赖项。它由 Kotlin 多平台生成,名为common-js.js. 这是我的一部分package.json

我把这个文件放进去node_modules/common-js.js,它firebase serve没有问题。

但是,当我运行时firebase deploy,部署失败并显示:

如何使用 Cloud Functions 实现这一目标?我尝试将它放到其他目录中,node_modules但它甚至在本地也不起作用。

0 投票
1 回答
1219 浏览

intellij-idea - Kotlin Multi-Platform - “错误:无法找到或加载主类 MainKt”

尝试使用函数名称旁边的绿色三角形在 IntelliJ IDEA 中运行 Kotlin JVM 模块的主函数时,出现以下错误:

Error: Could not find or load main class MainKt

有没有人经历过这个并且知道如何解决它?我已经在 Google 上尝试过这些建议,但它们似乎不起作用。

我对 Kotlin 和 Kotlin MultiPlatform 以及 Gradle 还是很陌生,所以如果您需要更多详细信息,请告诉我。

提前感谢,詹姆斯。

编辑:为了澄清,我可以从命令行运行构建的 .jar 文件,但不能从 IntelliJ 内部运行它而不会产生此错误。如果有人可以帮助我调试应用程序,我将不胜感激,我似乎无法弄清楚:)

0 投票
1 回答
74 浏览

kotlin - KProperty1 的不同语义在 JS 中与 JVM 相比

它看起来KProperty1<T, R>在 JVM 和 JS 中具有不同的语义,例如,当这个测试在 JVM 上工作时:

它在 Javascript 中失败并显示以下消息:

任何想法如何解决这个问题?

0 投票
2 回答
407 浏览

kotlin - 是否可以在 Kotlin 中使用多个通用库?

我尝试gradle使用 3 个模块构建项目,其中:
1) module1- 具有expect
空 build.gradle 依赖项
的通用模块 2) module2- 具有expect类和来自模块 1 的依赖项的通用模块:
build.gradle 依赖项:compile project(':module1')
2) module3- jvm 平台模块
build.gradle 依赖:expectedBy project(':module2')

当我尝试编译一个项目时,它在编译阶段出现错误module3,即来自的类module2无法找到来自.的类module1

Kotlin 1.2.30
Gradle 4.6
Java 1.8_161

是否可以在一个项目中同时使用多个通用模块?
是否有可能expect在每个公共模块中都有类?

0 投票
2 回答
68125 浏览

java - 检查您的模块类路径是否存在缺失或冲突的依赖项

我有一个使用 Java 和 Kotlin 的项目,我能够成功运行和构建它。但是,当我在 IntelliJ 中打开项目时,我在许多项目文件中看到相同的错误。

错误是“无法访问类'java.lang.String'。检查您的模块类路径是否缺少或冲突的依赖项”

请参阅附图中的错误: 在此处输入图像描述


另一个在初始化Kotlin MultiPlatform Mobile项目时发生的错误示例:


这个错误的根源是什么?我该如何解决?

0 投票
2 回答
661 浏览

android - Kotlin Multiplatform Android 模块只能访问 Android API 1

我正在 Kotlin 中开发一个具有 Android 模块的多平台项目。

在我的一个文件中,我有代码:

得到以下编译器错误:

所有对超出 Android API 级别 1 的任何内容的引用都会出现类似的编译器错误,但没有任何在 Android API 级别 1 中可用的引用。

Android Studio 可以识别所有的引用,并且代码完成对它们工作得很好。只有当我编译时,这些错误才会出现。

我的 gradle 文件如下所示: