问题标签 [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.
ios - 我可以使用 Kotlin 在 Windows 上为 iOS 开发应用程序吗?
我想在 Windows 上为 iOS 构建一个应用程序。我知道如何使用 Objective-C 在 Windows 上为 iOS 开发应用程序,但我想知道如何使用 Kotlin 在 Windows 上为 iOS 开发应用程序。
gradle - 如何使用 Gradle 和 IntelliJ 在 Kotlin 多平台项目中配置 JUnit 5?
JUnit 4(工作)
IntelliJ IDEA 2018.2.3(社区版)中的 Kotlin 多平台模板依赖于 JUnit 4.12build.gradle
用于项目的 JVM 部分:
使用这个模板,我可以将测试添加到项目的公共部分,并且测试可以被 IntelliJ 识别:源文件的边缘会显示一个“运行”图标,并且可以通过上下文菜单运行测试。
JUnit 5(在 IntelliJ 中未正确识别测试)
如何使用 JUnit 5 实现类似的设置?
值得注意的是,我使用的是 Gradle 4.10(一些较旧的示例使用自 Gradle 4.6 以来已被弃用junit-platform-gradle-plugin
)。关于如何设置的文档已经过时且稀缺:
- 如上图,IntelliJ 内置的默认项目模板没有使用 JUnit 5。
- JUnit 团队提供了示例,但不提供 Kotlin 多平台。
当我尝试基于 JUnit 5 Gradle 示例build.gradle
为项目的 JVM 部分设置时,我可以使用 Gradle 运行测试,但IntelliJ 似乎无法识别我的测试。
奇怪的是,当gradle test
在 JVM 项目上运行时,有时测试结果会出现在 IntelliJ 的测试结果中,但是当重新运行测试时,会出现“未收到测试事件”的消息。边距中的“运行”图标永远不会出现在源文件中,上下文菜单中的测试选项也不会出现。
其他人似乎也有类似的问题,但尚不清楚这些问题是否相同/相关或已解决,因为:
- Junit 5 和 Gradle 4.6 检查任务显示“未收到测试事件”
- junit5 测试未显示在测试视图中
- 左侧没有“运行”图标,用于多平台项目公共部分的测试
- Kotlin 多平台项目在 IDEA 中运行通用模块测试
许多不同的版本、过时的文档和类似的问题使得很难找到有关此问题的更多信息。
kotlin - 具有共享模块的多平台项目
我正在尝试创建一个具有共享依赖项的多平台项目,但我无法找出我做错了什么。
背景是我想创建一个生成某种配置的库,并将该配置用于应该在 jvm 和 node.js 上运行的运行时库。因此可以共享配置数据类,我想将其放入共享模块中。该代码根本不是特定于平台的。配置生成(我称之为 CLI)应该只是 jvm。所以我有这个模块(带有插件名称):
- cli (org.jetbrains.kotlin.jvm)
- 共享(kotlin-platform-common)
- 运行时共享(kotlin-platform-common)
- 运行时-js (kotlin-platform-js)
- runtime-jvm (kotlin-platform-jvm)
我通过 将共享模块设置为依赖compile project(":shared")
项,但似乎没有一个共享类位于从运行时开始的模块的类路径中。
这还不可能还是我做错了什么?
kotlin - Kotlin MPP/Native 构建 - 支持 Java 10
情况
我正在尝试构建https://github.com/JetBrains/kotlin-mpp-example项目,但该任务compileKotlinIos
总是失败,因为它试图使用 Java 10 来运行konanc
一个java.endorsed.dirs
参数。
使用 --info 运行时的任务详细信息:
问题
这应该如何处理?可以以某种方式将其更改为使用 Java 8,或禁用其中一些标志,或者这只是一个我必须等待的错误?
我尝试过的事情
从这个问题,我尝试
gradle.properties
在项目的根目录中创建一个文本org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/
。从上面的问题,我无法找到一个
gradle.properties
in~/.gradle
。我尝试将 IntelliJ 设置中的 Gradle JVM 设置为 JDK 8
kotlin - 如何让我的 JS 测试出现在 Kotlin Multiplatform 项目中
我正在使用 IntelliJ IDEA Multiplatform 项目,而 jsTest Gradle 任务未检测到任何测试。jvmTest 测试运行没有问题。当我运行带有调试输出的 jsTest 任务时,我可以看到该任务运行并立即完成。
Gradle 版本 4.10.1。Kotlin 版本 1.3.0-eap。
如何纠正 Gradle 配置,或者我可以运行什么命令,以便实际检测到测试,并且(如所写)失败?
构建.gradle:
测试项目_test.js:
android - 错误:在 Android Studio 3.1.4 中无法获取 KotlinTargetPreset 的未知属性“iosX64”?
嗨,我是 Android 和 Kotlin 环境的新手,我来自原生 iOS 背景。
我想创建一个 Kotlin MultiPlatform 应用程序,它可以在 Android 和 iOS 上运行。
为此,我正在关注此 https://kotlinlang.org/docs/tutorials/native/mpp-ios-android.html
从上述文档中完成更新 Gradle 脚本过程后,我面临以下问题:
无法为 org.gradle.api.internal.FactoryNamedDomainObjectContainer 类型的 KotlinTargetPreset 容器获取未知属性“iosX64”。
我的 build.gradle 文件路径是/Kotlin_Practice/KTMPDemo/SharedCode/build.gradle
构建.gradle
我可以更新/降级我的 Gradle 吗?我该如何解决上述问题?谢谢你。
我的系统配置:
Mac mini(2014 年末),macOS High Sierra,v10.13.5。
安卓工作室安卓工作室 3.1.4
构建 #AI-173.4907809,构建于 2018 年 7 月 24 日
JRE:1.8.0_152-release-1024-b01 x86_64
JVM:JetBrains sro 的 OpenJDK 64 位服务器 VM
kotlin - 如何为 kotlin/native 编写注释处理器?
是否可以在 kotlin/native 或 kotlin 多平台模块中编写我们的注释处理器?如果是这样,那怎么办?我为 kotlin 找到了本教程:https ://github.com/osamarao/ViewModelAnnotationsKt 但我不确定如何在 kotlin/native 中实现相同的功能。
json - Ktor:在多平台中以 List 为根序列化/反序列化 JSON
我们如何使用 kotlin.serialize 和 Ktor 的 HttpClient 来反序列化/序列化 JSON 并以列表为根?我正在按如下方式创建 HttpClient:
似乎我需要为 List 设置映射器,但是这对于泛型是不可能的。我看到我可以使用 MyClass.serializer().list 为它获取序列化程序,但是将其注册为对 http 请求进行反序列化/序列化并不简单。有人知道一个好的解决方案吗?
kotlin - Kotlin 中的多平台 InputStream 替代方案?
我正在寻找输入流的多平台替代方案。我的具体任务是通过 https 从远程服务器获取加密文件并按需解密。
在 Java 领域,我将使用一个实现InputStream
代理读取来自 https 库的输入流。如何在针对多个平台的 kotlin 中做同样的事情。
我看到 ktor 返回一个ByteReadChannel,但我不知道哪些函数。
我迷路了,不知道从哪里开始。提前感谢您的帮助。