问题标签 [kotlin-multiplatform-mobile]

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 回答
240 浏览

swift - 由于“任务':core:linkReleaseFrameworkIos'的执行失败”,Xcode 在 Kotlin Multiplatform 上失败

既然core我们如何命名 pod 来处理来自 Xcode 的 KMM,那么到底是linkReleaseFrameworkIos什么?
以前一切正常,但现在我的 Xcode 给了我错误提示

Command PhaseScriptExecution failed with a nonzero exit code
* What went wrong:
Execution failed for task ':core:linkReleaseFrameworkIos'.

我试过:

  • Pod 重新安装
  • 清洁项目
  • 删除派生数据
  • Gradlew clean(success), Gradle build(failed), Gradlew linkReleaseFrameworkIOS(failed) 命令

没有任何帮助。

0 投票
1 回答
212 浏览

android - 是否可以将普通的 Kotlin 库导入 Kotlin Mutliplatform Mobile

有没有办法将普通的 Kotlin 库(只有数据类)导入到多平台项目中。如果是,请提供来源:)

或者

我必须使用 Kotlin 多平台库模板来提供简单的信息。

我想将它导入到 KMM 的所有部分(Common、Android、...)。因为我也想在 Spring Boot (Kotlin) 后端使用该库,所以我认为使用 KMM 库在那里不起作用。

感谢您的帮助!

0 投票
1 回答
569 浏览

kotlin - 如何添加/删除/编辑 kotlinx.serialization.json.JsonObject 的值

我目前正在努力寻找将财产添加到现有jsonObject(kotlinx.serialization.json.JsonObject)

甚至我发现 JsonObject 内部有私有的不可变映射

场景:假设我已经有一个jsonObject包含 50 个属性的属性,并且考虑到任意键的 jsonObject 可以具有任意数量的深度。

对于这种情况,我们如何有效地执行以下操作:

  1. 添加原始属性
  2. 更新原始属性
  3. 删除原始属性

仅供参考:即使我发现有一个名为JsonObjectBuilder的类,但它不需要现有的 JsonElement / JsonObject / JsonArray 实际上它会新创建另一个 jsonObject。

感谢您抽出时间阅读到这里

https://github.com/Kotlin/kotlinx.serialization/issues/1593

0 投票
1 回答
62 浏览

kotlin - Kotlin/Native:如何实例化 IntVar?

构造IntVar函数将 aNativePtr作为参数。

如何创建IntVarfrom Int

0 投票
1 回答
205 浏览

kotlin - cinterop 进程以非零退出值 1 结束

我正在这个国际象棋应用程序中试验 kotlin 多平台。我在应用程序中有国际象棋引擎的 c++ 代码。对于每个引擎,我想创建一个 kmm 模块。由于 kotlin native 尚未与 c++ 互操作,因此我必须围绕 c++ 代码创建包装器。在每个 androidMain 中,我都有与 c++ 接口的 JNI 类,这是可行的。ios是我不清楚的地方。我相信我必须围绕 c++ 代码创建一个 obj-c++ 包装器(.mm 文件),然后为包装器执行 cinterop。

这是正确的吗?当我尝试构建它时,gradle sync 失败并出现以下错误:

我已经清理并重新启动了android studio,还尝试了java 8而不是11。

我也很感激有关 def 文件的更多信息的链接。kotlin 文档中没有太多关于它的内容。

我的 jwtc.def:

GameWrapper.h:

GameWrapper.mm:

0 投票
1 回答
25 浏览

gradle - gradle from("originPath") 和 into("targetPath") 如何以及为什么删除文件?

我有一个 gradle 任务,它需要一个目录并将其复制到另一个目录中。

from({ framework.outputDirectory }) into(File("/Users/user/Desktop/"))

这是完整的 gradle.kts 任务

我以为它只会复制framework.outputDirectoryDesktop中,但是当我运行该任务时,它删除了我在桌面上的所有文件(包括一些未备份的项目)。我无法恢复这些文件。

问题:为什么 gradle intodelete 的文件?它是否每次都会创建新文件夹并覆盖所有内容?

0 投票
0 回答
46 浏览

android - KMM commonTest 从 Asset 中读取文件

我想为我的测试用例从 commonTest 中的资产文件夹中读取 HTML 文件。

KMM 文档没有显示从项目目录中读取文件的任何参考。

0 投票
1 回答
45 浏览

gradle - Kotlin Multiplatform 库在运行时未解决的依赖关系

我正在制作一个私有的 Kotlin 多平台库,该库将位于 Bitbucket 上托管的私有仓库中。

我的库依赖于另一个库,称为 Krypto。

因此,自然地,我在库的公共模块中有以下依赖项:

现在,当我通过 Cocoapods 将库导入 iOS 项目时,它工作得非常好。但是,当我将 .jar 文件作为依赖项插入到我的 Android 项目中时:

它可以编译,但在运行时崩溃并出现以下错误:

如果我将 Krypto 依赖项添加到我的 Android 项目中,一切正常,但是我希望这些依赖项已经包含在我的库中。怎么做?

我还尝试添加 java-library 插件并在 java 构建块中添加依赖项,但它没有改变任何东西。

0 投票
2 回答
361 浏览

kotlin-multiplatform - 如何在 Multiplatform Ktor 和 Coil 之间共享 HttpClient?

我想使用 Coil 图像库从 api 加载图像,使用之前设置的相同 cookie。因此,我想对我的 Ktor 网络调用和使用线圈的图像加载都使用相同的 HttpClient。

如何在 Ktor 和 Coil 之间共享相同的 HttpClient?我假设,我需要以某种方式调整依赖关系,但我无法绕过它。

我在共享模块中的 KtorApiImpl

}

androidMain 中的实际 HttpClientProvider

androidApp 中的 ImageLoaderFactory - 如何使用 HttpClient 而不是创建新的?

androidApp 中的 Koin 依赖项

然后是主要活动

0 投票
1 回答
1716 浏览

kotlin - KMM - 在项目“:shared”中找不到错误任务“embedAndSignAppleFrameworkForXcode”

我创建了一个项目来演示 Kotlin Multiplatform Mobile。我在两种设备上成功构建并运行了它:Android 和 iOS。之后,我在 iOS 上重新运行了该项目。它有一个错误。

这是我在 Github 上的项目点击这里。请查看并帮助我找到错误。

提前致谢。