Как вы создаете многоплатформенную сборку Kotlin?

Я хотел бы создать тот же исходный код kotlin в javascript и java (android). Есть ли стандартный способ достичь этого?

  1. Создайте проект в IntelliJ. Выберите проект Gradle, а затем Java (и все, что вы хотите)

Новое меню проекта IntelliJ

  1. Создайте 3 новых модуля Gradle: common , android-specific и js-specific . Убедитесь, что они добавлены как модуль в основной модуль

Добавление нового модуля

Добавление новой части модуля 2

  1. Нажмите затем, затем закончите (и повторите для android-specific для android-specific и js-specific )
  2. Удалите settings.gradle из common , а остальные 2 модуля, поскольку они вам не понадобятся
  3. Убедитесь, что эти 3 новых модуля добавлены в основные settings.gradle родительского модуля. Это должно выглядеть более как это:

     rootProject.name = 'parent' include ':common' include ':android-specific' include ':js-specific' 
  4. Измените common зависимость модуля (файл build.gradle , строка 24 для меня ) от org.jetbrains.kotlin:kotlin-stdlib-jre8 до org.jetbrains.kotlin:kotlin-stdlib поэтому он не org.jetbrains.kotlin:kotlin-stdlib от платформы.
  5. Если вы действительно хотите быть уверены, что сделали все правильно, перейдите в View -> Tool Windows -> Gradle

Просмотр -> Инструмент Windows -> Gradle

  1. Вы должны увидеть меню «Грейдл», и оно должно выглядеть так:

Как это должно выглядеть

Конфигурация gradle также должна работать без IntelliJ (или Android Studio), но я не тестировал ее

Официальная многоплатформенная поддержка Kotlin еще не выпущена. Если вы хотите остаться в курсе событий, я рекомендую следовать #multiplatform каналу на Kotlin Slack .

Intereting Posts
Как добавить кнопку динамически в Android с помощью Kotlin Библиотека «Столкновение с пространством» вылетает со смертельным исходом 11 (SIGEGV) при вставке и удалении Способ указать autwireMode по умолчанию в поддержку весны kotlin Котлинские числовые литералы kotlin + parceler + Realm Что такое «приемник» в Котлине? Как реализовать clicklistener в элементе customadpter в kotlin? Как поместить файлы res из проекта в банку в одной папке? Kotlin: как создать 2D-массив типа String Переопределение активателя имущества Котлина приводит к двум JPA @Id Какой тип языка Котлин? Чистый ООП или функциональный Невозможно однозначно идентифицировать макет при добавлении вложенных фрагментов с помощью фрагментации Как обрабатывать обработку ошибок в одном месте в rxjava с помощью обертки error: generics не поддерживаются в -source 1.3 при компиляции кода Java с Kotlin Как расширить класс класса Kotlin или использовать общие для создания простого свойства getter, который будет работать во всех подклассах Number?