如何在现有的 Android/Kotlin 项目中添加 KMM 模块并导出到 Maven 到新的 KMM 应用程序

问题描述 投票:0回答:1

我的团队有一个 Android 应用程序,是在过去一年中开发的,完全是用 Kotlin 编写的。我们有兴趣为 iPhone 用户赢得新的用户群。

一个想法是使用 Kotlin Multiplatform (KMM)。这种方法允许我们重用 Android 应用程序中现有的业务逻辑代码,从而无需从头开始编写代码。

我已经开始对此进行概念验证,如下:

  1. 在新的 KMM 应用程序存储库中创建 KMM 共享模块。此 KMM 应用程序存储库仅适用于 iOS 构建。我们仍将使用 Android 应用程序存储库构建 Android 应用程序。
  2. 将共享模块导出到 Maven 注册表。
  3. 将 Maven 注册表导入现有的 Android 应用程序存储库。

我的问题是,我们是否可以反过来做,在 Android 应用程序中创建共享 KMM 模块,然后将其导出到 Maven。然后我们将其导入 KMM 应用程序存储库中。这样,我的团队就不必一遍又一遍地切换存储库,直到他们准备好移动 UI 实现为止。

我尝试在 Android 应用程序中添加“Kotlin 多平台共享模块”,但无法构建。它说“未解析的参考:库”。

请参阅以下步骤。

更新1:

我尝试在

libs.versions.toml
目录中添加
gradle
,内容如下。

[versions]
agp = "8.2.0"
kotlin = "1.9.22"

[plugins]
androidLibrary = { id = "com.android.library", version.ref = "agp" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlinCocoapods = { id = "org.jetbrains.kotlin.native.cocoapods", version.ref = "kotlin" }

错误变成这样

Error resolving plugin [id: 'org.jetbrains.kotlin.multiplatform', version: '1.9.22']
> The request for this plugin could not be satisfied because the plugin is already on the classpath with an unknown version, so compatibility cannot be checked.
android kotlin maven kotlin-multiplatform
1个回答
0
投票

“libs”是对 Gradle 版本目录的引用。如果您想以这种方式引用插件,您需要将它们添加到您的目录中,该目录通常在 TOML 文件或

settings.gradle.kts
脚本中定义。

然后 Kotlin 有关于多平台设置的文档,其中对于 Android 项目的设置有许多差异。

© www.soinside.com 2019 - 2024. All rights reserved.