问题标签 [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.
swift - 为什么 Koin 在我的 KMM 应用程序中抛出“未捕获的 Kotlin 异常:kotlin.native.IncorrectDereferenceException”?
未捕获的 Kotlin 异常:kotlin.native.IncorrectDereferenceException:非法尝试从其他线程访问非共享 org.koin.core.context.GlobalContext.KoinInstanceHolder
我已经检查过我在主线程上调用 InitKoin() 并且只有一次,在onApplicationDidFinishLaunchingWithOptions
. 我不认为我是从另一个线程做的,但我正在使用 Compose UI。调用是对存储库的,我确定我在那里犯了错误。
android - KMM commonTest 从 Asset 中读取文件
我想为我的测试用例从 commonTest 中的资产文件夹中读取 HTML 文件。
KMM 文档没有显示从项目目录中读取文件的任何参考。
kotlin-multiplatform - Ktor httpclient auth 功能在 IOS 上不起作用
我正在开发一个 KMM 项目,并且身份验证在 Android 应用程序上运行良好。但是,当我在 httpclient(位于 shared.commonMain 中)中添加Auth功能时,ios 应用程序在运行时失败并显示以下消息
函数没有或继承 @Throws 注释,因此异常不会作为 NSError 从 Kotlin 传播到 Objective-C/Swift。相反,它被认为是意外和未处理的。程序将终止。
这就是我创建httpclient的方式
这是 Greeting 类的完整代码:
}
异常完整的堆栈跟踪
确切的解决方案:
- 移动
emailUser
和passwordUser
共同的Main.Platform
- androidMain.Platform
- iosMain.Platform
ios - Kotlin Multi Platform (KMM) 中是否有 AES 128 加密(密码)逻辑?
我通过使用 JavaX 库在 Kotlin 中找到了 AES 加密逻辑。由于它特定于 java (Android),因此它不适用于 iOS。
有什么方法可以在 iOS 或 KMM 中实现上述代码?
android - 未解决的参考:iosSimulatorArm64
尝试将使用 kotlin 编写的现有简单 android 应用程序转换为KMM时,我遇到了一个障碍。
以下是以下错误。
我阅读了链接中提供的文档,但似乎不是我想要的直接解决方案。
我采取的过程只是通过在 android stuido 中提供的支持来添加 KMM 模块。
我已经寻找其他来源,但我找不到任何相关问题
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 模板时,我从来没有遇到过任何问题。
有人知道发生了什么以及我能做什么吗?
android - 如何在 localMaven() 上成功发布 KMM 库以供 android 项目使用?
我正在尝试将我制作的 KMM 库与我的 Android 项目集成。到目前为止,我已经按照此处的步骤在本地成功发布了 KMM 库
但不幸的是,当尝试将其作为依赖项添加到我的 Android 项目中时,该项目无法构建:
我已经添加mavenLocal()
到我的存储库
但仍然一无所获,有什么帮助吗?
注意:当尝试在另一个 KMM 项目或模块中使用库时,它会成功构建。
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,我没有遇到过这个问题。
kotlin - 共享模块中的 KMM 依赖问题
我们正在使用 KMM 创建一个应用程序。但是我们面临一个问题,kSoap2 库在 android 应用程序中工作正常,但是当这个库在 Android Studio 的共享目录中使用时,它不起作用并给出错误。同样的事情也适用于日历。它也不起作用,在编写 Calendar.getInstance() 时,错误说
无法访问“java.util.Calendar”的超类型“Kotlin.Cloneable”。检查您的模块类路径是否存在缺失或冲突的依赖项
build.gradle.kts(适用于 AndroidApp):
ios - 如何使用 Xcode 在 iOS 上调试 Kotlin
目前我正在做一个 KMM 项目。能够在 xcode 项目中调试 kotlin 中的共享代码将非常有用。 我知道这个解决方案,但我无法告诉 Xcode *.kt 文件是源文件
更具体地说,在上面的 github 链接中它是这样写的:
您需要告诉 Xcode *.kt 文件是源文件,并在调试开始时运行 lldb 格式化程序脚本。高级用户可能希望手动执行此操作,但如果您在默认位置安装了 Xcode,则可以运行安装脚本。除非您使用的是 Xcode 11(在这种情况下请在此处寻求帮助),否则以下脚本将安装调试和格式化支持:
./setup.sh
我不知道应该在哪里以及如何运行 ./setup.sh 或者是否有其他方法可以做到这一点?