Публикация мультиплатформенной библиотеки Kotlin. Не могу использовать классы в commonMainAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Публикация мультиплатформенной библиотеки Kotlin. Не могу использовать классы в commonMain

Сообщение Anonymous »

Я создал чистую библиотеку Kmm без использования функций, специфичных для платформы. весь код находится только в commonMain. Это простой класс:

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

class TemperatureConverter {
fun celsiusToFahrenheit(celsius: Double): Double {
return celsius * 1.8 + 32.0
}

fun fahrenheitToCelsius(fahrenheit: Double): Double {
return (fahrenheit - 32.0) / 1.8
}

val simpleString : String = "SimpleString"

}
Я публикую эту библиотеку в mavenLocal. В папке .m2 я вижу опубликованный артефакт aar и файл pom. Я также вижу все платформы, которые указаны в целях. Вот пример build.gradle.kts всего проекта библиотеки kmm:

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

plugins {
id("com.android.library").version("8.0.2").apply(false)
kotlin("multiplatform").version("1.9.24").apply(false)
id("maven-publish")
}

buildscript {
repositories {
google()
mavenCentral()
mavenLocal()
}
}

afterEvaluate {
publishing {
publications {
create("release") {
groupId = "com.ag.secondTry"
artifactId = "test-lib-second"
version = "1.0.13"
artifact("C:\\KotlinSamples\\KotlinLibs\\TestLib\\sharedMpTest\\build\\outputs\\aar\\sharedMpTest-debug.aar")
}
}
}
}

allprojects {
repositories {
google()
mavenCentral()
mavenLocal()
maven { url = uri("https://jitpack.io") }
}
}

tasks.register("clean", Delete::class) {
delete(rootProject.buildDir)
}
Далее приведен пример общего модуля build.gradle.kts библиотеки kmm:

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

plugins {
kotlin("multiplatform")
kotlin("native.cocoapods")
id("com.android.library")
id("maven-publish")
}

@OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class)
kotlin {
applyDefaultHierarchyTemplate()

androidTarget {
publishLibraryVariants("release", "debug")
compilations.all {
kotlinOptions {
jvmTarget = "17"
}
}
}
androidTarget()
iosX64()
iosArm64()
iosSimulatorArm64()

cocoapods {
summary = "Some description for the Shared Module"
homepage = "Link to the Shared Module homepage"
version = "1.0"
ios.deploymentTarget = "14.1"
framework {
baseName = "sharedMpTest"
}
}

sourceSets {
val commonMain by getting {
dependencies {
//put your multiplatform dependencies here
}
}
}
}

android {
namespace = "com.ag.kmmtestlib"
compileSdk = 33
defaultConfig {
minSdk = 21
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
в другом мультиплатформенном проекте я подключаю эту библиотеку к общему модулю и не могу использовать Мой класс ТемператураКонвертер в commonMain. он доступен только в androidMain. что мне сделать, чтобы этот класс стал доступен в commonMain?
если я удалю артефакт из build.gradle.kts, библиотека не появится во внешних библиотеках проекта, к которому я ее подключаю.

Подробнее здесь: https://stackoverflow.com/questions/786 ... commonmain
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как использовать регистрацию ktor в мультиплатформенной версии Kotlin Mobile
    Anonymous » » в форуме Android
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Multipliform Bibrary Publishing. Не могу использовать классы в CommonMain
    Anonymous » » в форуме Android
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Мастер создания мультиплатформенной сборки Kotlin генерирует для меня сборку с ошибкой в ​​Ios
    Anonymous » » в форуме IOS
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Многоплатформенный мобильный контекст Kotlin в CommonMain
    Гость » » в форуме Android
    0 Ответы
    32 Просмотры
    Последнее сообщение Гость
  • Многоплатформенный мобильный контекст Kotlin в CommonMain
    Гость » » в форуме IOS
    0 Ответы
    27 Просмотры
    Последнее сообщение Гость

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