gpt4 book ai didi

android - Kotlin MultiPlatform - 发布 Android 库失败

转载 作者:行者123 更新时间:2023-12-03 15:54:01 25 4
gpt4 key购买 nike

我正在尝试使用新的 Kotlin MultiPlatform 设置发布一个 Android 库(调试/发布)。我能够成功发布 iOS 框架,但不能发布 android 库。这是我最终得到的错误:
配置项目 ':shared' 时出现问题。

Failed to notify project evaluation listener.Kotlin target 'android' tried to set up publishing for Android build variants that are not library variants or do not exist:* release* debugCheck the 'publishLibraryVariants' property, it should point to existing Android library variants. Publishing of application and test variants is not supported.


但是,我可以清楚地看到我的 Android Studio 中的变体。我还能够使用库依赖项作为项目依赖项从 Android Studio 运行 Android/IOS 应用程序 implementation(project(":shared"))仅在尝试发布时遇到问题。
这是我的 build.gradle.kts:

plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
id("com.android.library")
id("kotlin-android-extensions")
id("com.squareup.sqldelight")
id("dev.icerock.mobile.multiplatform-resources")
`maven-publish`
}

group = "com.sekhar.testkmp"
version = "0.1"
val coroutinesVersion = "1.3.9-native-mt"
val serializationVersion = "1.0.0-RC"
val ktorVersion = "1.4.0"
val sqlDelightVersion: String by project

repositories {
gradlePluginPortal()
google()
jcenter()
mavenCentral()
}

kotlin {
android {
publishLibraryVariants("release", "debug")
}
ios {
binaries {
framework {
baseName = "shared"
}
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:$serializationVersion")

implementation("io.ktor:ktor-client-core:$ktorVersion")
implementation("io.ktor:ktor-client-serialization:$ktorVersion")

implementation("com.squareup.sqldelight:runtime:$sqlDelightVersion")
implementation("dev.icerock.moko:resources:0.13.1")
implementation("dev.icerock.moko:parcelize:0.4.0")
implementation("dev.icerock.moko:graphics:0.4.0")
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
}
}
val androidMain by getting {
dependencies {
implementation("com.google.android.material:material:1.2.1")

implementation("io.ktor:ktor-client-android:$ktorVersion")
implementation("com.squareup.sqldelight:android-driver:$sqlDelightVersion")
}
}
val androidTest by getting {
dependencies {
implementation(kotlin("test-junit"))
implementation("junit:junit:4.12")
}
}
val iosMain by getting {
dependencies {
implementation("io.ktor:ktor-client-ios:$ktorVersion")
implementation("com.squareup.sqldelight:native-driver:$sqlDelightVersion")
}
}
val iosTest by getting
}
}

dependencies {
commonMainApi("dev.icerock.moko:resources:0.13.1")
}

multiplatformResources {
multiplatformResourcesPackage = "com.sekhar.testkmp" // required
}

android {
compileSdkVersion(29)
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
defaultConfig {
minSdkVersion(24)
targetSdkVersion(29)
versionCode = 1
versionName = "1.0"
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
getByName("debug") {
isMinifyEnabled = false
}
}
lintOptions {
isAbortOnError = false
}
}

val packForXcode by tasks.creating(Sync::class) {
group = "build"
val mode = System.getenv("CONFIGURATION") ?: "DEBUG"
val sdkName = System.getenv("SDK_NAME") ?: "iphonesimulator"
val targetName = "ios" + if (sdkName.startsWith("iphoneos")) "Arm64" else "X64"
val framework = kotlin.targets.getByName<KotlinNativeTarget>(targetName).binaries.getFramework(mode)
inputs.property("mode", mode)
dependsOn(framework.linkTask)
val targetDir = File(buildDir, "xcode-frameworks")
from({ framework.outputDirectory })
into(targetDir)
}

tasks.getByName("build").dependsOn(packForXcode)```

最佳答案

最常见的解决方案是应用 android插件:id("com.android.library")kotlin 之前多平台插件:kotlin("multiplatform") .

plugins {
id("com.android.library")
kotlin("multiplatform")
kotlin("plugin.serialization")
id("kotlin-android-extensions")
id("com.squareup.sqldelight")
id("dev.icerock.mobile.multiplatform-resources")
`maven-publish`
}

关于android - Kotlin MultiPlatform - 发布 Android 库失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64775638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com