Ошибка плагина при добавлении проекта Kotlin Multiplatform Mobile в многопроектную сборку Android gradleAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка плагина при добавлении проекта Kotlin Multiplatform Mobile в многопроектную сборку Android gradle

Сообщение Anonymous »

У меня есть два проекта: библиотека Android (которая должна использоваться в других проектах) и Мультиплатформенный мобильный проект Kotlin, который содержит некоторый общий код для совместного использования между Android. и версии библиотеки для iOS. Я понимаю, что проект KMM должен содержать внутри код для версий Android и iOS, а не иметь отдельные проекты KMM и android/iOS, но поскольку эти проекты уже существуют и являются обширными, было бы сложно объединить их в один проект KMM, поэтому вместо этого я решил включить код из общего модуля KMM в сборку библиотеки Android.
структура каталогов проекта:

Код: Выделить всё

AndroidLibrary   каталог завершается успешно, ошибка возникает только при сборке AndroidLibrary)
Все места, где используется многоплатформенный плагин:
AndroidLibrary/ kmmLibrary/build.gradle.kts
[code]plugins {
//trick: for the same plugin versions in all sub-modules
id("com.android.library").version("8.0.2").apply(false)
kotlin("multiplatform").version("1.8.21").apply(false)
}
...
AndroidLibrary/kmmLibrary/shared/build.gradle.kts

Код: Выделить всё

plugins {
kotlin("multiplatform")
id("com.android.library")
}
...
Я загрузил здесь пример кода. Запустите ./gradlew в основном каталоге, чтобы воспроизвести ошибку.

Мне удалось заставить его работать с составной сборкой gradle (с использованием includeBuild 'kmmLibrary:shared'), но я бы предпочел сохранить ее как многопроектную сборку (поэтому используйте обычный include ':kmmLibrary:shared') из-за способа обработки артефактов сборки. Использование includeBuild не позволит мне объявить зависимость проекта от общего модуля (

Код: Выделить всё

api project(":kmmLibrary:shared")
), который будет включать классы из общего модуля в артефакте сборки AndroidLibrary, который позже станет зависимостью от третьего проекта. Использование includeBuild потребует отдельной публикации модуля kmmLib/shared в maven, чтобы третий проект мог получить доступ к его классам (как временная зависимость от AndroidLibrary). Я хотел бы избежать этого, поэтому необходимо публиковать только библиотеку, чтобы изменения могли распространяться на любой проект, имеющий библиотеку в качестве зависимости.

Подробнее здесь: https://stackoverflow.com/questions/771 ... d-gradle-m
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как исправить красную ошибку Kotlin Multiplatform Mobile gradle
    Anonymous » » в форуме Android
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Костюма MultiplaTform MultiplAtform Gradle не удалась с неверной ошибкой временной метки
    Anonymous » » в форуме Android
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Ошибка KSP при добавлении комнаты в Multiplatform Project Kotlin
    Anonymous » » в форуме Android
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Ошибка KSP при добавлении комнаты в Multiplatform Project Kotlin
    Anonymous » » в форуме Android
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Как использовать библиотеку Java с KMM (Kotlin Multiplatform Mobile)
    Anonymous » » в форуме JAVA
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»