问题标签 [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 投票
2 回答
827 浏览

kotlin - 用于 Kotlin Multiplatform Mobile 的 Hamcrest 和 Mockk

我正在尝试在KMM项目的shared模块中编写测试。在共享模块的 build.gradle.kts 文件中,我有以下内容:

我也试过:

结果相同:IDE 不再识别测试,我无法运行它们。

0 投票
4 回答
890 浏览

unit-testing - 如何在 KMM 上为 SQLDelight 编写单元测试

我想知道如何在KMM上为SQLDelight编写单元测试。首先,我什至无法正确添加SQLDelight依赖项。

在我添加依赖项然后同步项目后,项目甚至没有构建。有人可以告诉我这是否是添加 sqlite 驱动程序依赖项的正确方法吗?

任何帮助将不胜感激!

0 投票
3 回答
1888 浏览

android - KMM:如何将共享模块引用到现有的 iOS 项目中

我已经按照KMM 动手教程学习了如何使用 KMM 构建示例应用程序,并且我能够成功完成所有步骤!(Yu-huu!)现在我正在尝试在生产应用程序中做一个小的 POC。所以我创建了一个新的 KMM 共享模块并将其添加到 Android 项目中。对于 Android 部分,它工作正常,但我不知道如何将共享模块包含到 iOS 应用程序中。

根据此链接,文件中应引用iOS项目目录gradle.properties

但是当我尝试导入共享模块时,xcode 抱怨没有这样的模块:

在此处输入图像描述

所以我想仅仅引用iOS项目gradle.properties是不够的。一定还有其他我想念的东西。


另外,我检查了build共享模块的目录,据我所知,没有生成 iOS 工件。(这不同于bin/iosX64/debugFragmework/shared.framework/ ....存在 a 的动手教程项目。)

在此处输入图像描述

0 投票
0 回答
109 浏览

android-studio - 我的 iPhone 不会出现在 Android Studio 的“执行列表”中

我正在尝试使用 Kotlin Multiplatform Mobile,并尝试在 iPhone 上运行演示应用程序。我可以在 Android Studio 本身的 iPhone 模拟器上轻松运行它,但如果我将真正的 iPhone 连接到 MacBook,我无法在 Android Studio 的“执行目标”列表中看到它。

在此处输入图像描述

请注意,如果我使用 Xcode 打开项目,我可以在真正的 iPhone 上运行它。难道我做错了什么?

在此处输入图像描述

0 投票
2 回答
1737 浏览

android - kotlinx.serialization.SerializationException:找不到类“MultiPartFormDataContent”的序列化程序

我正在尝试上传多个文件。

我就是这样做的:

但它抛出异常

我也尝试过这种方式,但遇到了同样的问题:

0 投票
2 回答
517 浏览

kotlin - 无法在 kotlin 多平台移动设备中导入依赖项

我创建了一个新的 kotlin 多平台移动项目。我遵循了官方文档。基本项目正在运行,我能够毫无问题地在 android 上构建它。

我想添加一些api,我发现了ktor,我以前从未使用过。我在这里关注了文档:https ://kotlinlang.org/docs/mobile/use-ktor-for-networking.html和教程在这里:https ://proandroiddev.com/kotlin-multiplatform-very-beginners-guide-part- 2-api-d54f7326dc57和我所做的所有更改是:

我将ktor库添加到build.gradle.kts(:shared)

我创建了Api我想创建和使用的类HttpClient

但是HttpCLient()是“未解决的参考”,它不能被导入。我也尝试手动添加导入io.ktor.client.HttpClient

但是io是“未解决的参考”。我也尝试了许多重建/清理/同步。我究竟做错了什么?我错过了什么吗?

0 投票
1 回答
343 浏览

kotlin-multiplatform - 分段上传列表文件

如何使用 ktor 从客户端上传列表文件?

我尝试:

但它的变体不起作用。

0 投票
2 回答
764 浏览

android - Gradle 没有以正确的方式寻找依赖关系

我正在尝试将 moko 依赖项添加到 gradle 上的 kotlin 多平台。

org.gradle.internal.resolve.ArtifactNotFoundException: 找不到 mvvm-livedata-0.9.1-samplessources.jar (dev.icerock.moko:mvvm-livedata:0.9.1)。在以下位置搜索: https ://dl.bintray.com/icerockdev/moko/dev/icerock/moko/mvvm-livedata/0.9.1/mvvm-livedata-0.9.1-samplessources.jar

看起来链接的“-samplessources”部分不应该存在,但不知道如何删除它。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
428 浏览

android-studio - Android Studio 在 KMP/KMM/KN 中添加了错误的 xcodeproj 位置

我正在尝试运行全新的 KMM 应用程序和我之前创建的现有 KMM 应用程序,当我尝试从 Android Studio 运行 iOS 版本时,我没有 iOS 配置。

在此处输入图像描述

当我去创建一个 iOS 配置时,我得到一个必须先修复的错误。当我按下“修复它”按钮时,gradle.properties文件会创建一个新行xcodeproj=iosApp/iosApp.xcodeproj

这既是错误的,也是重复的。

在此处输入图像描述

在此处输入图像描述

如果我删除任何一个重复的xcodeproj行,错误就会继续,当我修复它时我会得到一个新行(再次)。如果您重复此过程,您还可能会得到许多新xcodeproj行,所有这些行都位于错误的位置。将位置修改为正确的位置也不能解决问题。

在此处输入图像描述

有什么想法吗?似乎是 Android Studio 4.1.2 中的一个错误。

以下是 Android Studio 版本的详细信息:

Android Studio 4.1.2 Build #AI-201.8743.12.41.7042882,构建于 2020 年 12 月 19 日运行时版本:1.8.0_242-release-1644-b3-6915495 x86_64 VM:JetBrains sro macOS 10.15 的 OpenJDK 64 位服务器 VM。 7 GC:ParNew、ConcurrentMarkSweep 内存:1979M 内核:12 注册表:ide.new.welcome.screen.force=true、external.system.auto.import.disabled=true、debugger.watches.in.variables=false插件:com.intellij.lang.jsgraphql、org.jetbrains.kotlin、com.jetbrains.kmm

0 投票
0 回答
195 浏览

kotlin - 无法在 Kotlin Multiplatform 项目中访问 Apollo 类

我刚刚从 Android 工作室创建了一个新的 KMP 项目,添加了此处定义的 Apollo MP: https ://www.apollographql.com/docs/android/essentials/get-started-multiplatform/

这些类是在“commonMain/build/generated/source/apollo”下生成的,但我无法从 commonMain 代码访问它们或任何 Apollo 类(例如 ApolloClient)。

我还注意到 Apollo 也没有出现在外部库项目下。

从上面的相同链接:

在 src/commonMain/graphql 下添加您的 schema.json 和其他 .graphql 文件。构建您的模块,生成的代码将在 commonMain sourceSet 下可用。这意味着您可以在 commonMain 或特定于平台的 Kotlin 代码中使用它们。一旦 Kotlin 插件构建了 iOS 框架,生成的代码甚至可以从 Swift 代码中调用。

我错过了什么?谢谢