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

kotlin - 我应该如何在 Kotlin 多平台移动设备 (KMM) 中验证电子邮件地址?

我们应该如何验证 Kotlin 多平台移动(KMM)?我发现了这个问题,但它使用了 java.util.regex.Pattern,它对 KMM 没有用:

我应该如何验证电子邮件地址?

0 投票
1 回答
534 浏览

android - KMM:如何解决不兼容的 abi 版本。当前默认为“1.4.2”,找到“1.5.0”。1.5.20编译器产生的库?

我正在制作一个KMM application,我已经完成了 Android 部分,没有任何问题,一切正常。

然而,当我通过打开iosMyApp.xcworkspace文件启动 iOS 版本并启动编译时,会出现此错误。

目前,我在 iOS 部分没有任何内容。

这是我的项目的配置。 build.gradle.kts (:shared)

构建.gradle.kts

我尝试将此行修改为旧版本,但没有成功。

有没有人有解决方案或有什么需要调查的?

0 投票
1 回答
626 浏览

kotlin - Kotlin 多平台期望/实际类,一些方法共享

是否有可能在 KMM 中有一些期望 + 抽象类?项目为安卓+iOS

我想要一些共享类,但部分方法应该是特定于平台的。

做这个的最好方式是什么?也许是预期班级的某种组合,实际班级的共享父级?

例子,

据我了解,这样的例子是不可能的,因为预期的类应该是接口而不是抽象类。

两个平台的方法 resetTimer 可能相同。

有可能吗?

0 投票
0 回答
18 浏览

kotlin - Kotlin multiplatform. Ktor download big file and save to local file

I have the kotlin multiplatform mobile app for Android and iOS targets.

In the app i need to download a big file (50MB), show progress while download, save it locally, verify with MD5, than read line by line and do some action.

As i understand Ktor is best http client for kmm. Also, i found some tips how to show progress. But in all example i found all contents is downloaded to memory and only after this i can save it to file (shared code can not do this, i need to call expect/actual code separately) But i want to save a file while downloading, without putting it to the memory. Is it possible? Or 50MB in memory is not a problem and i can keep it here?

0 投票
3 回答
147 浏览

kotlin - Kotlin MPP pod 集成失败

3 天前,我刚刚发布了我的 Kotlin MPP 的第一个版本作为库。它已成功集成在 Android 和 iOS 上。在第一次发布后,我切换到了一个同事分支并使我的缓存失效。从那以后,我无法再同步 gradle 了。

我收到此错误:

任务:cinteropSnowplowTrackerIosArm64 线程“主”java.lang.Error 中的异常:/var/folders/gv/rc4dmzjs3wj9kt4kr00nwhdw0000gn/T/13496315139908854548.m:1:9:致命错误:无法在 org.jetbrains.kotlin 构建模块“SnowplowTracker” .native.interop.indexer.UtilsKt.ensureNoCompileErrors(Utils.kt:152) at org.jetbrains.kotlin.native.interop.indexer.ModuleSupportKt.getModulesASTFiles(ModuleSupport.kt:68) at org.jetbrains.kotlin.native.interop .indexer.ModuleSupportKt.getModulesInfo(ModuleSupport.kt:14) 在 org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.buildNativeLibrary(main.kt:515) 在 org.jetbrains.kotlin.native.interop.gen .jvm.MainKt.processCLib(main.kt:266) at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.interop(main.kt:76) at org.jetbrains.kotlin.cli.utilities.InteropCompilerKt .invokeInterop(InteropCompiler.kt:45) 在 org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:38) 在 org.jetbrains.kotlin.cli.utilities.MainKt.main(main.kt:60)

即使回到我的第一个 POC 提交,它已经成功发布了好几次,我也无法再构建了。 这是我集成 iOS 依赖项的方法。 我不知道问题是什么。我尝试设置一大堆不同的 JDK 版本(8、11、14、15、16、17)但没有成功。我尝试将 Kotlin 版本从 1.4.20 升级到 1.5.x。我尝试降级 IntelliJ IDEA 和更多的东西都没有成功。我现在唯一的猜测是它与一些更新的插件有关。我怎么能验证呢?

以下是 pod 的集成方式:

0 投票
0 回答
64 浏览

maven - 在 Kotlin 多平台库中创建库

我对 maven Central 很陌生,刚开始学习 Kotlin 多平台。我正在尝试在 KMM 中创建一个新库,但我无法获得有关如何执行此操作的正确指南。

我已经浏览了显示如何在 KMM 中创建 lib 的链接,但我不确定这是否正是我需要的。

我目前有几个问题:-

  • 是否需要创建 Sonatype 帐户才能创建 KMM 库?
  • 由于不推荐使用 Jcenter 并且 jitpack 仍然不支持 KMM 库,因此我现在可以发布除 maven Central 之外的库之外的任何其他方式。

此外,如果您能推荐任何其他博客或视频教程来参考发布 KMM 库,那就太好了。

0 投票
1 回答
457 浏览

kotlin-multiplatform - KMM Cocoapods 出口 (M1) Mac

所以我正在尝试将我的 KMM 项目导出为 iOS 框架

这是我的 build.gradle.kts

这是我的 Podfile

每当我从 Android Studio 运行 gradle 同步时,它都会抛出这个错误

然后我尝试pod install从我的终端运行命令,它成功安装了 cocoapods。但是在构建过程中我遇到了另一个问题

podDebugFramework 二进制文件中导出的以下依赖项未指定为相应源集的 API 依赖项:

我在这里想念什么?谢谢

0 投票
1 回答
191 浏览

android - 用于 Kotlin 多平台移动设备的 Skia

我正在做一个 KMM 项目,目前需要相当高级的矢量图形。根据我之前的经验,最好使用的库是 Skia:它功能强大、相当简单且速度非常快。现在我在 Internet 上搜索了一天用于 Kotlin 的 Skia,我唯一能找到的是:https ://github.com/JetBrains/skiko 但是,我看不到它支持 Android 或 iOS,但也许我的搜索还不够好?那么,是否有适用于 Kotlin 多平台移动设备的 Skia?或者也许有一种方法可以在 KMM 中使用原始的 Skia 库?或者,在 KMM 中处理矢量图形的最佳方法是什么?

0 投票
1 回答
54 浏览

kotlin-multiplatform - 我应该将我的包名用于 KMM SqlDelight 配置吗?

我正在遵循本指南,在此步骤的第一部分中,我必须执行以下操作:

问题是,我应该使用.handson.还是.myPackageName.为什么?

0 投票
1 回答
768 浏览

android - Compose 编译器需要 Kotlin 版本

我使用 android studio 制作了一个 Kotlin Multiplatform Mobile 项目,导入 SQLDelight 后遇到以下错误:

我关注了这个问题,但是他们提到的所有事情我都已经正确完成了。在逐个文件查找并找不到声明该版本的位置后,我决定将我的项目与其中一个示例项目进行比较。

再次浏览文件后,我发现我在我的 App Grade.properties 中使用了 sqlDelightVersion 1.5.2,他们使用了 1.4.2 将其从 1.5.2 更改为 1.4.2 后,一切都可以编译。

问题是,如果 SQLDelight 与 jetpack compose 无关,为什么会发生这种情况?