问题标签 [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.
swift - 嵌套 KMM 包未正确引用
我正在尝试在我的 iOS 应用程序中使用 2 个 KMM 包,但是它没有被正确引用。
这是我的依赖结构:
这是我尝试在 iOSApp 中使用的示例文件
将它们添加到 iOS 应用程序时,它不明白参数 foo 来自 KmmPackageOne
抛出以下错误
我假设 KPT 表示 KmmPackageTwo。因此,XCode 似乎为 KmmPackageOne 中的 KmmPackageTwo 添加了一层抽象。
KmmPackageOne 的 build.gradle
java - 如何将 Java 对象转换为 Kotlin 多平台对象
我有一个 Java 对象。我有一个 Kotlin Multi Platform 对象。如何将此 Java 对象转换为 Kotlin Multi Platform 对象?
Java 代码:
Kotlin 多平台共享代码:
我有一个需要 KMMRecentItemList 的 KMM 库。IE:
android - 在 Kotlin 多平台项目中与 Compose 共享活动
我在设置驻留在 KMM 项目中的共享代码中并使用 Jetpack Compose 的活动时遇到问题。当活动在 Android 源(/app)中时,这可以正常工作。但我想发布一个没有任何应用程序的共享(/common)库。
例如,我创建了一个很棒的最小 KMM+Compose 项目:https ://github.com/cyberhenoch/PeopleInSpace :
- 将撰写活动(SharedActivity)添加到共享代码中
- 更新了共享代码androidMain中的依赖项
它编译得很好,但在运行时我得到:
进程:com.surrus.peopleinspace,PID:4067 java.lang.NoSuchMethodError:没有静态方法 setContent $default(Landroidx/activity/ComponentActivity;Landroidx/compose/runtime/CompositionContext;Lkotlin/jvm/functions/Function0;ILjava/lang/ Object;)V 在类 Landroidx/activity/compose/ComponentActivityKt; 或其超类(在 com.surrus.android.SharedActivity.onCreate( SharedActivity.kt:12)
我尝试添加此处描述的选项https://developer.android.com/jetpack/compose/setup#configure_gradle但是
- 并非所有都可以添加到公共模块(kotlinOptions?)
- 在原始项目中,它们不是必需的,而且效果很好
- 在以不同的组合添加其中几个后,它甚至无法编译(异常:java.lang.NoClassDefFoundError: org/jetbrains/kotlin/serialization/DescriptorSerializerPlugin at java.base/java.lang.ClassLoader.defineClass1(Native Method))
我应该怎么做才能让它工作?任何帮助,将不胜感激。
android - 未找到 Kotlin Multiplatrom Mobile 库的匹配变体
我有一个发布到 Maven Central的 Kotlin Multiplatform Mobile库。我也在尝试在非 KMM Android 应用程序中使用这个库。当我在 android 应用程序中声明依赖项时,出现此错误
我认为我的配置有问题,但我真的不知道该错误告诉我什么,这是我第一次创建 KMM 库。
这是我的build.gradle.kts
我需要做什么才能(io.github.tyczj:tweedle-android)
在非 KMM android 应用程序中使用 android 依赖项?
更新
我尝试将“调试”添加到 android 库变体
以及添加后备
那没有做任何事情
如果我创建一个新的 KMM 项目并尝试添加依赖项,我会得到一些不同的错误说
kotlin - 我如何在 swift Kotlin 多平台上使用 Flow?
我正在创建我的第一个 kotlin 多平台项目,我在快速使用 kotlin 流程时遇到了一些困难。我使用 kotlin flow 和 ktor 创建了模型、服务器数据请求作为通用文件、视图模型和我创建为本机的 ui 层。所以,我没有快速开发的经验,除此之外,我在快速视图模型上使用流程时遇到了很多麻烦。在寻找我的问题的答案时,我发现了一个描述为 CommonFlow 的类,它的目的是用作两种语言的通用代码(kotlin、swift,但我遇到了一个错误,让我很少或根本不知道为什么会这样发生了,或者,可能只是我缺乏对 xcode 和 swift 编程的控制:
所以这是 xcode 指出错误的代码部分: Obs: sorry about the image 我想这次可能更具描述性
这就是我从错误中得到的全部
我的 iOS 视图模型:
存储库方法:
类 CFLOW:
android-studio - 如何降级项目 kotlin multiplatform 上的 gradle 以使用 Android Studio 稳定版?
最近我开始在一个 kotlin 多平台项目上工作,当我开始时我没有任何以前的经验,我得到的项目已经创建了它的基础。创建项目的开发人员有在 android 开发部分使用 compose 库的想法。然后他辞掉了工作,我开始了。但是我选择不使用 compose,因为交付应用程序很匆忙。
因此,项目 gradle 版本当前已启用6.8
且 android 插件已启用,7.0.0-alpha05
但我想降级以停止在 Canary 版本上使用 Android Studio,并在稳定版本上使用。但是当我降级gradle时,我收到了这个错误:
梯度属性:
共享梯度:
毕业典礼:
android - 用 Cocoapod 替换最新 KMM 中的 ./gradlew packForXcode 是什么?
我正在按照https://kotlinlang.org/docs/mobile/integrate-in-existing-app.htm中的 KMM 教程工作。当我到达这一步./gradlew packForXcode
时,它会失败
我怀疑原因是旧的 KMM 有packForXcxode
它的 iOS 框架。
./gradlew packForXcode
KMM 与 Cocoapod的等价物是什么
(仅供参考,我使用的 KMM 版本是 0.2.5(202-1.5.10-834-IJ)-3 插件)
kotlin - 如何以“yyyy-mm-dd hh:mm:ss”格式反序列化日期?
我从不是 ISO 格式的 API 中获取了类似“2021-03-26 22:02:53”格式的日期,我为它创建了一个自定义序列化程序,但出现错误。我也不想使用 ISO 格式,我想将日期发回为“yyyy-mm-dd hh:mm:ss”。
由于我们不能在 Kotlin 多平台中使用 Java.Date,那么像这样序列化日期格式的正确解决方案是什么?
谢谢
android - 无法在 MacBook M1 芯片上构建 Kotlin Multiplatform 移动项目
我无法为 iOS 应用程序构建 KMM 项目。我正在关注 KMM入门。我有以下设置
- Android Studio Artic Fox Beta 3
- Kotlin 1.5.10 插件
- KMM 插件 0.2.6
- Xcode 12.5
- JDK 11(在嵌入式 AS 和 azul 的 JDK 11 上试用)
当我从 android studio 运行 iosApp 时出现以下错误(Android 应用程序能够在同一项目中成功运行)
anybudy 是在 Mac M1 上构建的吗?
gson - 如何将 GsonSerializer 用于 ktor?
在https://ktor.io/docs/json.html#gson中,我可以看到我们可以将 GsonSerialzer 作为代码
但我似乎无法包括这门课。我应该导入哪个库(在我的 Gradle 中)才能访问它们?