如何使用 Kotlin 同时定位 JVM/Native 和 Android
Posted
技术标签:
【中文标题】如何使用 Kotlin 同时定位 JVM/Native 和 Android【英文标题】:How to target both JVM/Native and Android with Kotlin 【发布时间】:2019-07-03 16:43:15 【问题描述】:我一直在尝试编写由服务器(Kotlin 本机/JVM)和客户端(android)共享的代码
我同时拥有 Android Studio 和 IntelliJ IDEA。 我希望能够编写可以从我的 Android 项目中使用并且也可以独立使用的 Kotlin 代码(JVM 或 Native,尚不确定)。 IntelliJ 在项目设置上有很多不错的多平台选项,但我无法从 Android Studio 构建它们。
Kotlin 共享项目有这个插件
plugins
id 'kotlin-multiplatform' version '1.3.11'
并且构建良好 - 即我可以从 IntelliJ 运行它,一切都很好。
但是如何将其导入 Android Studio。我做了以下更改
settings.gradle
include ':app', ':shared'
project(':shared').projectDir = new File('../../kotlin/shared')
它显然是在尝试从正确的文件构建,但是 gradle sync 立即失败并显示以下消息:
插件 [id: 'kotlin-multiplatform', version: '1.3.11'] 未找到 在以下任何来源中:
Gradle 核心插件(不是核心插件,请参阅https://docs.gradle.org/4.4/userguide/standard_plugins.html 可用的核心插件) 插件存储库(无法解析插件工件 'kotlin-multiplatform:kotlin-multiplatform.gradle.plugin:1.3.11') 在以下存储库中搜索: Gradle Central 插件库
我认为这将是存储库问题,但两个项目(共享库和 Android 项目)只有 mavenCentral。
所以我很困惑。如何为 Android 和 JVM/Native 构建相同的代码?
【问题讨论】:
【参考方案1】:您在 Gradle 构建中使用了错误的插件 ID。试试
plugins
id 'org.jetbrains.kotlin.multiplatform' version '1.3.21'
改为。
ios和Android应用教程看相关https://kotlinlang.org/docs/tutorials/native/mpp-ios-android.html
您可以查看 MPP 库教程https://kotlinlang.org/docs/tutorials/multiplatform-library.html
请在此处https://kotlinlang.org/docs/reference/building-mpp-with-gradle.html#publishing-a-multiplatform-library 找到 Kotlin MPP 插件的文档
【讨论】:
就这么简单。谢谢你!以上是关于如何使用 Kotlin 同时定位 JVM/Native 和 Android的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Graphql-kotlin 查询同时返回数据字段和错误字段
使用 Shadow 重定位的包中的 Kotlin 属性不起作用