问题标签 [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 回答
178 浏览

swift - 为什么 Koin 在我的 KMM 应用程序中抛出“未捕获的 Kotlin 异常:kotlin.native.IncorrectDereferenceException”?

未捕获的 Kotlin 异常:kotlin.native.IncorrectDereferenceException:非法尝试从其他线程访问非共享 org.koin.core.context.GlobalContext.KoinInstanceHolder

我已经检查过我在主线程上调用 InitKoin() 并且只有一次,在onApplicationDidFinishLaunchingWithOptions. 我不认为我是从另一个线程做的,但我正在使用 Compose UI。调用是对存储库的,我确定我在那里犯了错误。

0 投票
0 回答
46 浏览

android - KMM commonTest 从 Asset 中读取文件

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

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

0 投票
1 回答
508 浏览

kotlin-multiplatform - Ktor httpclient auth 功能在 IOS 上不起作用

我正在开发一个 KMM 项目,并且身份验证在 Android 应用程序上运行良好。但是,当我在 httpclient(位于 shared.commonMain 中)中添加Auth功能时,ios 应用程序在运行时失败并显示以下消息

函数没有或继承 @Throws 注释,因此异常不会作为 NSError 从 Kotlin 传播到 Objective-C/Swift。相反,它被认为是意外和未处理的。程序将终止。

这就是我创建httpclient的方式

这是 Greeting 类的完整代码:

}

异常完整的堆栈跟踪

确切的解决方案:

  1. 移动emailUserpasswordUser共同的Main.Platform
  1. androidMain.Platform
  1. iosMain.Platform
0 投票
1 回答
324 浏览

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

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

有什么方法可以在 iOS 或 KMM 中实现上述代码?

0 投票
1 回答
541 浏览

android - 未解决的参考:iosSimulatorArm64

尝试将使用 kotlin 编写的现有简单 android 应用程序转换为KMM时,我遇到了一个障碍。

以下是以下错误。

我阅读了链接中提供的文档,但似乎不是我想要的直接解决方案。

我采取的过程只是通过在 android stuido 中提供的支持来添加 KMM 模块。

我已经寻找其他来源,但我找不到任何相关问题

0 投票
1 回答
296 浏览

android-studio - Android Studio的KMM模板项目不创建可运行项目

当我在 Android Studio 中使用KMM 应用程序模板创建一个新的多平台项目时,我收到以下错误:

该项目无法运行,它没有可用的配置:

在此处输入图像描述

我正在使用 Android Studio 最新版本:Android Studio - 北极狐 | macOS 上的2020.3.1 补丁 2

安装的gradle版本是7.0

在此处输入图像描述

Android Studio 还会显示以下警告:

在此处输入图像描述

单击Load Gradle Project会导致相同的错误:

在此处输入图像描述

gradle-wrapper.properties文件使用gradle-7.0.2-bin.zip。(没有可用的分发版本 gradle-7.0-bin.zip

当我尝试创建gradlew文件时,出现以下错误:

在此处输入图像描述

我不知道我可以将选项传递给哪个命令 -Pkotlin.native.cocoapods.generate.wrapper=true

按照建议更改 gradle 的版本gradle-wrapper.properties会在同步项目后导致以下错误:

在此处输入图像描述

在使用 Android Studio 的 KMM Application 模板时,我从来没有遇到过任何问题。

有人知道发生了什么以及我能做什么吗?

0 投票
2 回答
237 浏览

android - 如何在 localMaven() 上成功发布 KMM 库以供 android 项目使用?

我正在尝试将我制作的 KMM 库与我的 Android 项目集成。到目前为止,我已经按照此处的步骤在本地成功发布了 KMM 库

但不幸的是,当尝试将其作为依赖项添加到我的 Android 项目中时,该项目无法构建:

我已经添加mavenLocal()到我的存储库

但仍然一无所获,有什么帮助吗?

注意:当尝试在另一个 KMM 项目或模块中使用库时,它会成功构建。

0 投票
1 回答
314 浏览

android - BuildConfig 在 KMM 项目中定义多次

我在 Kotlin Multiplatform Mobile (KMM) 项目上工作,并试图为 Android 应用程序生成签名的发布应用程序包并遇到此错误

引起:com.android.tools.r8.internal.b:类型packageName.BuildConfig被定义多次

一个BuildConfig在 Androidapp模块中,另一个在shared模块中,具有相同的包名称。

这是来自我的应用程序模块 Gradle

对于 Building Debug Apk 或 App Bundle,我没有遇到过这个问题。

0 投票
1 回答
657 浏览

kotlin - 共享模块中的 KMM 依赖问题

我们正在使用 KMM 创建一个应用程序。但是我们面临一个问题,kSoap2 库在 android 应用程序中工作正常,但是当这个库在 Android Studio 的共享目录中使用时,它不起作用并给出错误。同样的事情也适用于日历。它也不起作用,在编写 Calendar.getInstance() 时,错误说

无法访问“java.util.Calendar”的超类型“Kotlin.Cloneable”。检查您的模块类路径是否存在缺失或冲突的依赖项

build.gradle.kts(适用于 AndroidApp):

0 投票
1 回答
200 浏览

ios - 如何使用 Xcode 在 iOS 上调试 Kotlin

目前我正在做一个 KMM 项目。能够在 xcode 项目中调试 kotlin 中的共享代码将非常有用。 我知道这个解决方案,但我无法告诉 Xcode *.kt 文件是源文件

更具体地说,在上面的 github 链接中它是这样写的:

您需要告诉 Xcode *.kt 文件是源文件,并在调试开始时运行 lldb 格式化程序脚本。高级用户可能希望手动执行此操作,但如果您在默认位置安装了 Xcode,则可以运行安装脚本。除非您使用的是 Xcode 11(在这种情况下请在此处寻求帮助),否则以下脚本将安装调试和格式化支持:

./setup.sh

我不知道应该在哪里以及如何运行 ./setup.sh 或者是否有其他方法可以做到这一点?