问题标签 [kmm]

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

kotlin - KMM 和 iOS 中的传递依赖是如何工作的?

假设我有一个包,共享包,它与两个 KMM 项目共享:KMM 项目 A 和 KMM 项目 B。

所以我们有共享包 -> KMM 项目 A 和共享包 -> KMM 项目 B。

现在我想在我的 iOS 应用程序中同时使用 KMM Project A 和 KMM Project B。这是如何运作的?共享包是否与两个框架捆绑在一起(即我两次包含相同的依赖项?)。此外,共享包是否需要是 KMM 项目才能允许 KMM 项目 A 和 B 生成相关的 iOS 框架?或者它可以是一个纯粹的 Kotlin 项目吗?

这是一张图表,可能会对我试图理解的情况提供更多解释。

在此处输入图像描述

0 投票
1 回答
65 浏览

ios - KMM ios flow.combine throwing no event loop error

I use this in build.gradle

I get this error

I've tried playing around with actual / expected dispatchers from other questions but no success. On android this works perfectly, on ios it doesn't.

0 投票
0 回答
55 浏览

macos - 构建 kotlin 多平台 ios fat 框架时,Gradle 守护进程消失

尝试在 Kotlin Multiplatform 上构建 iOS 胖框架,但失败并出现错误:

Gradle 属性 ~/.gradle/gradle.properties:

构建胖框架的任务:

Gradle 守护程序在 2g - 3g 内存使用量时被杀死/消失。

环境:Java 8、11 和 17、Kotlin 1.4.32、Gradle 6.5.1、macOS Big Sur

有什么想法有什么问题吗?它曾经建造得很好。任何帮助深表感谢。

0 投票
0 回答
31 浏览

ios - gradlew :shared:podInstall 的 KMM

我共享的 KMM bulid.gradle。由于 gradlew :shared:podInstall 导致同步失败。但是在共享模块路径我成功运行了 pod install 。为什么会这样。求救!</p>

0 投票
1 回答
127 浏览

kotlin - Ktor Multiplatform Bearer Token Refresh 导致“冻结 kotlin.native.internal.Ref 的突变尝试”

我正在尝试让 Ktor 客户端刷新 Kotlin 多平台项目中的 Bearer 令牌。

这里有一个例子它应该如何工作。

我的 http 客户端配置代码看起来非常相似——除了获取和刷新令牌的不同请求:

但这导致mutation attempt of frozen kotlin.native.internal.Ref. 好像不太lateinit var tokenInfo: TokenInfo喜欢

这只发生在 iOS 上。安卓工作。

(顺便说一句,我切换到了新的内存模型。但在这种情况下,这似乎无关紧要,这是同样的错误。)

0 投票
0 回答
82 浏览

android - KMM Android 模块未包含在库中

我有一个包含多个模块的 Android 项目。

  • 特色一
  • 功能 2
  • 日志
  • 共享 KMM 模块

其中一个模块是使用 KMM 的共享代码模块。我使用https://github.com/kezong/fat-aar-android将所有模块包含到库中。

在库组装期间,我的所有模块都已构建,但生成的工件没有来自 KMM 模块的任何类、对象或接口,导致在尝试调用 KMM 模块具有的类时出现 java.lang.NoClassDefFoundError。

这可能与proguard有关吗?或者模块的 gradle 上的一些错误配置?

0 投票
0 回答
93 浏览

android - 具有 Kotlin 多平台项目结构的 Ktor 库

我正在开发一个 Kotlin 多平台应用程序,我使用 Ktor 来进行网络调用,并使用 SqlDelite 来管理本地数据源。

因此,当您创建 KMM 项目时,我尝试实现与构建 Android Studio 相同的结构。

我的问题是我用来异步连接的 api,我需要传递两个标头才能在其中进行身份验证。我尝试在我的 HttpClient 中使用标头,并在我的客户端的 get 方法中使用参数。

我不知道这是正确的方法,还是看起来不是。

关于我的后端设置有以下类:

UnsplashApi.kt

PetsRepository.kt

关于我的 androidApp 文件夹分类:

PetsViewModel.kt

宠物适配器.kt

MainActivity.kt

应用程序.kt

我不包括 sqlDelite 的部分,因为与这个问题的主要目标无关,这是 Api.kt 类的结构,其中 Ktor 用于建立网络连接。

[编辑]

添加了请求的logcat:

[编辑]

像这样更改我的 api.kt 类后:

我开始在 logcat 中得到这个:

我正在阅读一些论坛,可能与解码响应的需要有关。

正如我所说,我真的只是开始 which ktor 并且我不知道如何正确实施

提前感谢!

0 投票
0 回答
281 浏览

android - Ktor 的响应失败并出现异常:kotlinx.serialization.json.JsonDecodingException:偏移量 0 处的意外 JSON 令牌:预期 '[,种类:LIST'

我在 Kotlin Multiplatform 中开发了一个应用程序,在那里我尝试将常规库实现到网络和本地存储:带有 SqlDelight 的 Ktor。

在设置正确的配置以使 KMM 编译正常后,我尝试使用 Ktor 库连接 API,但虽然我的实现返回 200 代码响应,但我收到上述标题错误:

关于我的 API.class

关于我的存储库,我使用 Ktor 库从 API 恢复数据,如下所示:` PetsRepository.kt

关于我的模型。

宠物.kt

UnplashPhoto.kt

另一种结构是常规的 MVVM 模式,我使用 ViewModel 以 Flow 的形式传递数据。但主要的一点是,Ktor 似乎需要在某些时候反序列化响应,我想我应该处于 UnplashApi.kt 级别。

我也在阅读一些论坛,以及他们建议的不同解决方案,例如将“isLenient = false”和“encodeDefault = false”放在 KotlinxSerializer 的 JsonConfiguration 中。

我希望你能提供帮助,如果这样,请提前感谢!

[编辑]

在@AlekseiTirman 的建议下,我像这样更改了我的 UnplashhApi.kt 的代码,但是虽然响应代码是 200,并且数据正确加载到响应中,但仍然不起作用:

UnplashAPI.kt

添加了 2 张显示数据的 logcat 图片:

在此处输入图像描述

在此处输入图像描述

[编辑]

调试应用程序后,我看到数据流是正确的,直到我尝试将 UnsplashPhoto 列表转换为存储库类中的宠物列表,当我尝试映射它时。

0 投票
0 回答
27 浏览

ios - Kotlin Multi Platform (KMM) 中是否有 AES 256 CBC 加密(密码)逻辑?

我通过使用 JavaX 库在 Kotlin 中找到了 AES 加密逻辑。由于它特定于 java (Android),因此它不适用于 iOS。

0 投票
0 回答
17 浏览

kotlin - watchOS 的 kotlin KMM 面孔?

是否可以创建 Kotlin Multiplatform Mobile (KMM) 表盘?

可以为 KMM 应用程序设置 watchOS 目标,但这似乎主要用于常规 watchOS 应用程序。我找不到任何有关为表盘执行此操作的文档。

关于是否/如何做到这一点的任何想法?