问题标签 [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.
android-studio - Android Studio Kotlin Multiplatform 项目搞砸了自动完成
我正在 Android Studio 中构建一个 Kotlin Multiplatform 项目,并且我正在使用的公共库的自动完成功能不起作用,但它在 Gradle 中构建得很好。
我试过了:
- 使 IDE 的缓存无效并重新启动
- 清理我的构建
- 关闭和重新打开项目
都没有成功。
android - 在 IntelliJ 中运行多平台 Kotlin 测试会产生 No JDK specified 错误
我在多平台 Kotlin 项目的公共模块中有几个测试。当我使用 gradle 执行这些测试时,例如./gradlew :android:test
,它们都通过并且测试运行。
我现在遇到了一个更复杂的问题,我想在 IntelliJ 中调试实际测试。不幸的是,在 IntelliJ 中选择调试选项后,我收到No JDK specified错误。
我正在使用以下依赖项进行测试:
为1.2.41。$kotlin_version
_
常见的模块设置如下所示:
SDKs 部分还可以正确识别 JDK:
我尝试将 Module SDK 从 Kotlin SDK 更改为 java,但是 IntelliJ 然后希望我需要 jUnit 来执行测试,如果可能的话,我不希望这样做。
有没有办法让调试器在 IntelliJ 中运行 Kotlin 代码?
kotlin - kotlin-stdlib-common 中的随机性来源
在 kotlin-stdlib-common 中是否有任何开箱即用的随机性来源?无论是标准的一些实现java.util.Random
,kotlin.math.random*
还是我可以用来创建自己的随机数生成器的基本当前时间毫秒?我找不到任何东西。
如果不存在,您将如何在不设置自己的平台相关实现的情况下获得随机性来源?这是我需要的唯一方法:
我正在尝试使其与平台无关。
android - @Parcelize 在多平台项目中
我想在一个多平台项目中创建一个类,并在 Android 版本中使用Parcelize
它。Parcelable
所以在我的lib-common
项目中,我尝试了:
在我的lib-android
项目中:
第一个问题是 Gradle 插件kotlin-android-extensions
好像没有接受lib-android
's build.gradle
,所以kotlinx.android.parcel
找不到包。我设法通过直接导入库来解决这个问题:
有了这个,编译的actual
定义。Parcelable
但是,我从 的定义中得到一个错误Foo
,好像它没有正确注释@Parcelize
:
类
Foo
不是抽象的,也没有实现public abstract fun writeToParcel(p0: Parcel!, p1: Int): Unit
定义的抽象成员android.os.Parcelable
javascript - 如何在 kotlin 中的 js 数组上使用 push() 或 pop()?
我有一个 JavaScript 对象:
如何在 Kotlin 中定义它?我可以在 keyB 上使用 push() 或 pop() 吗?谢谢你。
kotlin - 面向多平台时测试方法名称中的空格
我真的很喜欢 Kotlin 为方法名称添加空格的能力,这是一种有据可查的方法,通常用于使测试名称更具可读性:
在测试中(并且仅在测试中),可以使用带有反引号的空格的方法名称。(请注意,Android 运行时当前不支持此类方法名称。) ...
我在我正在开发的一个针对 JVM 的新库中大力采用了它们。我的测试在 IntelliJ 中显示得很漂亮,一切都很好。
现在,我正在尝试将此库移植为多平台(针对 JVM 和 JavaScript)。当我添加带有空格的测试时,我在 Gradlebuild
运行时收到以下 Kotlin 编译器错误compileTestKotlin2Js
:
名称包含不能出现在 JavaScript 标识符中的非法字符
我应该从我的测试方法中删除所有空格,还是有另一种方法可以两全其美?
另外,关于“Android运行时目前不支持此类方法名称”的限制,这是真正的限制吗?只要我可以在 JVM 上运行测试,我仍然可以使用针对 Android 运行时的测试库(在任何方法中都不包含空格),对吗?
kotlin - 正如文档中所说,kotlin 1.2 中没有 kotlin.Math 类
我最近一直在处理 kotlin 多平台,我完全理解开发的本质。最初,我有自己预期的数学类(在一个公共模块中),并且在 JS 和 JVM 环境中有实际的类。
由于我喜欢阅读文档,我发现从 kotlin 1.2 开始,Math 库已添加到标准库中。这给我带来了麻烦,因为我正在使用 kotlin 1.2.51,并且在我的公共模块和我的任何平台特定模块中尝试从 kotlin.Math 访问该类时遇到错误。
我没有得到什么?如何访问我的公共模块中的 kotlin.Math 类?
android - Gradle 项目同步失败,原因:org/gradle/api/internal/FeaturePreviews
我正在尝试遵循以下教程:https ://github.com/JetBrains/kotlin-native/blob/master/MULTIPLATFORM.md
但是当我尝试从 android studio 构建 android 应用程序时,出现以下错误:
FAILURE:构建失败并出现异常。
- 其中:构建文件'/Users/nishita.dutta/AndroidStudioProjects/KotlinMultiplatform/application/greeting/ios/build.gradle'行:1
- 出了什么问题:评估项目 ':application:greeting:ios' 时出现问题。org/gradle/api/internal/FeaturePreviews
这是我的 ios/build.gradle 文件
gradle - 依赖于 Kotlin Multiplatfrom 来自 JVM 的 JS 模块
我有一个 Kotlin Multiplatform 项目,其中包含一个通用模块、一个 JS 和一个 JVM 模块。JVM 模块使用 JavaFX WebView 来显示 GUI。然而,这个 GUI 应该作为 JS 模块来实现。如何正确添加 JS 模块作为依赖项?我试过
但是,这不包括类路径中任何位置的生成的 JS 文件。JS 模块确实创建了一个具有所需依赖项的 JAR 文件,但我找不到访问它们的方法。
我还尝试简单地将 JS 文件复制到我的构建输出中,但它们仍然被忽略:
有没有办法做到这一点?
unit-testing - Kotlin 多平台项目在 IDEA 中运行通用模块测试
我正在使用带有 js/jvm 子项目的 kotlin 多平台项目。我曾经在 jvm 子项目中进行单元测试(使用 kotlin 测试注释进行注释),并且我使用右键单击轻松运行测试 + 使用 junit 运行“xxx”测试。一旦我将这些测试移到公共模块,该选项就不可能了。
我仍然可以使用命令行 gradle 运行测试,我什至设法创建了有效的运行配置,但是为了方便起见,我在类甚至特定的测试方法上缺少那个简单的“右键单击运行”。
有没有办法在项目中实现这一点?
谢谢!