问题标签 [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.
kotlin - IntelliJ 中的 Kotlin 多平台 JVM 类型不匹配
我有一个项目,其中包含以下模块:
- 常见的
- common-js
- 通用 jvm
- 后端
- 网络
这个想法是我将我的共享(kotlin)代码(主要是模型)放在共同的位置,可以在 kotlin 驱动的后端和使用最近引入的多平台支持的 javascript 驱动的 webapp 中使用。为此,我在 Intellij 中创建了一个新的多平台应用程序,并向其中添加了后端和 Web 模块。
公共模块中的示例类:
后端是一个简单的 Spring Boot 应用程序。它依赖于 common-jvm 项目:
现在,当我运行时gradle bootRun
,应用程序启动并且工作正常。但是,当我尝试使用 IntelliJ 运行相同的应用程序时,会出现如下错误:
错误:(68, 26) Kotlin: 类型不匹配: 推断类型是
kotlin.Long
但java.lang.Long
预期
错误:(68, 65) Kotlin: 类型不匹配: 推断类型是kotlin.String!
但java.lang.String
预期
在这一行中,我尝试Show
使用来自 json 源的数据创建模型实例:
我正在使用 Kotlin 1.2.10 和 spring boot 1.5.9.RELEASE。
有谁知道这是什么原因以及如何解决的?我尝试-Xmulti-platform
在后端模块的项目结构中添加额外的命令行参数,但这也不起作用。
kotlin - 将 Gradle 子项目与 Kotlin 多平台一起使用
我正在使用 Kotlin 多平台(JVM 和 JS),它在 IDEA 中创建了三个项目demo
:demo-js
和demo-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:
ios - kotlin 本机未知主机目标
我在 CLion IDE 中创建了一个新的 Hello World Kotlin Native 项目,但我得到了。kotlin native unknown host target 错误。
因为我使用的是 Windows,而 KONANC 仅在 macOS 和 Linux 上受支持。如何修复此错误并在 windows 上运行 Kotlin Native 项目?
我遵循了这个Kotlin Native Tutorial。
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
但它甚至在本地也不起作用。
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 内部运行它而不会产生此错误。如果有人可以帮助我调试应用程序,我将不胜感激,我似乎无法弄清楚:)
kotlin - KProperty1 的不同语义在 JS 中与 JVM 相比
它看起来KProperty1<T, R>
在 JVM 和 JS 中具有不同的语义,例如,当这个测试在 JVM 上工作时:
它在 Javascript 中失败并显示以下消息:
任何想法如何解决这个问题?
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
在每个公共模块中都有类?
java - 检查您的模块类路径是否存在缺失或冲突的依赖项
我有一个使用 Java 和 Kotlin 的项目,我能够成功运行和构建它。但是,当我在 IntelliJ 中打开项目时,我在许多项目文件中看到相同的错误。
错误是“无法访问类'java.lang.String'。检查您的模块类路径是否缺少或冲突的依赖项”
另一个在初始化Kotlin MultiPlatform Mobile项目时发生的错误示例:
这个错误的根源是什么?我该如何解决?
android - Kotlin Multiplatform Android 模块只能访问 Android API 1
我正在 Kotlin 中开发一个具有 Android 模块的多平台项目。
在我的一个文件中,我有代码:
得到以下编译器错误:
所有对超出 Android API 级别 1 的任何内容的引用都会出现类似的编译器错误,但没有任何在 Android API 级别 1 中可用的引用。
Android Studio 可以识别所有的引用,并且代码完成对它们工作得很好。只有当我编译时,这些错误才会出现。
我的 gradle 文件如下所示: