我的团队有一个 Android 应用程序,是在过去一年中开发的,完全是用 Kotlin 编写的。我们有兴趣为 iPhone 用户赢得新的用户群。
一个想法是使用 Kotlin Multiplatform (KMM)。这种方法允许我们重用 Android 应用程序中现有的业务逻辑代码,从而无需从头开始编写代码。
我已经开始对此进行概念验证,如下:
我的问题是,我们是否可以反过来做,在 Android 应用程序中创建共享 KMM 模块,然后将其导出到 Maven。然后我们将其导入 KMM 应用程序存储库中。这样,我的团队就不必一遍又一遍地切换存储库,直到他们准备好移动 UI 实现为止。
我尝试在 Android 应用程序中添加“Kotlin 多平台共享模块”,但无法构建。它说“未解析的参考:库”。
请参阅以下步骤。
我尝试在
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.
“libs”是对 Gradle 版本目录的引用。如果您想以这种方式引用插件,您需要将它们添加到您的目录中,该目录通常在 TOML 文件或
settings.gradle.kts
脚本中定义。
然后 Kotlin 有关于多平台设置的文档,其中对于 Android 项目的设置有许多差异。