Я пытаюсь создать многомодульный проект Gradle с некоторыми модулями Koltin MPP.
У меня очень странная проблема при попытке построить модуль Kotlin MPP. Все указанные зависимости разрешены, их можно увидеть из конфигурации Gradle, но когда я пытаюсь использовать некоторые классы в мобильных целях (Android и iOS), я не могу этого сделать. Классы не могут быть разрешены вообще.
Это мой файл сборки Gradle для рассматриваемого модуля:
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.multiplatform'
id 'org.jetbrains.kotlin.plugin.serialization'
}
group 'bg.dalexiev'
version '0.0.1'
def ktor_version = '1.3.1'
def serialization_version = '0.14.0'
def coroutines_version = '1.3.3'
def timber_version = '4.7.1'
android {
compileSdkVersion 29
defaultConfig {
minSdkVersion 21
versionName '0.0.1'
versionCode 1
}
sourceSets {
main {
manifest.srcFile 'src/androidMain/AndroidManifest.xml'
java.srcDirs = ['src/androidMain/kotlin']
res.srcDirs = ['src/androidMain/res']
}
test {
java.srcDirs = ['src/androidTest/kotlin']
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
google()
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation "io.ktor:ktor-client-okhttp:$ktor_version"
implementation "io.ktor:ktor-client-json-jvm:$ktor_version"
implementation "io.ktor:ktor-client-serialization-jvm:$ktor_version"
implementation "io.ktor:ktor-client-logging-jvm:$ktor_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serialization_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
implementation "com.jakewharton.timber:timber:$timber_version"
testImplementation("junit:junit:4.12")
testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
}
kotlin {
android("android")
def sdkName = System.getenv('SDK_NAME')
def iosTarget = sdkName?.startsWith('iphoneos') ? presets.iosArm64 : presets.iosX64
targetFromPreset(iosTarget, "ios") {
binaries {
framework()
}
}
sourceSets {
commonMain {
dependencies {
implementation kotlin('stdlib-common')
implementation "io.ktor:ktor-client-core:$ktor_version"
implementation "io.ktor:ktor-client-json:$ktor_version"
implementation "io.ktor:ktor-client-serialization:$ktor_version"
implementation "io.ktor:ktor-client-logging:$ktor_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serialization_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
}
}
commonTest {
dependencies {
implementation kotlin('test-common')
implementation kotlin('test-annotations-common')
}
}
iosMain {
dependencies {
implementation "io.ktor:ktor-client-ios:$ktor_version"
implementation "io.ktor:ktor-client-json-native:$ktor_version"
implementation "io.ktor:ktor-client-serialization-native:$ktor_version"
implementation "io.ktor:ktor-client-logging-native:$ktor_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$serialization_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-native:$coroutines_version"
}
}
iosTest {
}
}
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "1.8"
}
}
configurations {
compileClasspath
}
Мне удалось создать автономный проект Gradle с той же конфигурацией без проблем. Буду признателен за любую помощь и совет.