如何使用Kotlin同时定位JVM / Native和Android

时间:2019-02-09 18:33:20

标签: android android-studio gradle intellij-idea kotlin

我在尝试编写由服务器(Kotlin本机/ JVM)和客户端(Android)共享的代码时遇到困难

我同时拥有Android Studio和IntelliJ IDEA。 我希望能够编写Kotlin代码,这些代码可以从我的Android项目中使用,也可以独立使用(不确定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同步立即失败,并显示以下消息:

  

找不到插件[id:'kotlin-multiplatform',版本:'1.3.11']   通过以下任何一种来源:

     
      
  • Gradle核心插件(不是核心插件,请参阅https://docs.gradle.org/4.4/userguide/standard_plugins.html)   可用的核心插件)
  •   
  • 插件存储库(无法解析插件工件'kotlin-multiplatform:kotlin-multiplatform.gradle.plugin:1.3.11')
      在以下存储库中搜索:   Gradle中央插件存储库
  •   

我认为这将是存储库问题,但是两个项目(共享库和Android项目)仅具有mavenCentral。

所以我很困惑。如何为Android和JVM / Native构建相同的代码?

1 个答案:

答案 0 :(得分: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插件的文档。