我得到这个构建错误:
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
plugins {
kotlin("multiplatform")
id("com.android.library")
}
repositories {
mavenCentral()
}
kotlin {
android()
ios {
binaries {
framework {
baseName = "bandit"
}
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.1.1")
implementation("com.squareup.okio:okio-multiplatform:3.0.0-alpha.3")
implementation("com.squareup.okio:okio-fakefilesystem-multiplatform:3.0.0-alpha.3")
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
}
}
val androidMain by getting
val androidTest by getting {
dependencies {
implementation(kotlin("test-junit"))
implementation("junit:junit:4.13.2")
}
}
val iosMain by getting
val iosTest by getting
all {
languageSettings.apply {
enableLanguageFeature("InlineClasses")
useExperimentalAnnotation("kotlin.time.ExperimentalTime")
useExperimentalAnnotation("okio.ExperimentalFileSystem")
}
}
}
}
android {
compileSdkVersion(30)
defaultConfig {
minSdkVersion(23)
targetSdkVersion(30)
}
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
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)
kotlinOptions {
jvmTarget = "1.8"
}
kotlin多平台项目中的kotlinOptions
奇怪的是,最初的海报据称只是通过修补他的androidx进口产品来解决这个问题。也许值得注意的是,我的所有六个“不能内联字节码”都与对新的多平台Okio库的方法调用相关联。但更有可能的是我自己的设置出现了错误,而不是杰克·沃顿帮做的事情。
根据文档:https://kotlinlang.org/docs/mpp-dsl-reference.html#compilation-parameters
不要被Gradle Docs的代码示例所迷惑,认为很多编译语法只适用于Java块。以下是为Android构建指定jvm版本目标的方式:
kotlin {
android {
compilations.all {
kotlinOptions.jvmTarget = "1.8"
}
}
ios {
...
我的KMP Jetpack Compose项目中继续出现Gradle配置错误 配置项目:共享时出现问题。 找不到名为“testApi”的配置。 我的设置是: Android Studio北极狐狸2020.3.1金丝雀3 项目级别设置 注意:通过删除一部分一部分的配置,我似乎发现问题似乎是围绕着android配置本身,所以如果我删除android()部分 只要简单的jvm()就可以了
回到历史 我有这个android库,开发人员可以正常使用 现在我们正在从头开始重写库以创建V3。 在这个重组中,我们设法将lib分解成模块。所以可以说在V3上我们会有以下文物 这将为gradle结构提供以下模块: 对于其提供了一个,这样就可以使用模块中的所有内容,但实际上不需要在内部编译它。 但是我也想为现有的主机应用程序提供一个简单的迁移路径。意思是,我希望在V3上也有以下结合了和的工件(这基本
问题内容: 我一直在尝试使用Maven Shade插件来获取jar,但是我仍然没有成功。 这是我的项目结构: Module1(pom.xml): Module2(pom.xml): MainModule(pom.xml): 根据这段代码,我得到了2个jar文件(Module1-version.jar和Module2-version.jar)。但这不是我想要的。我希望得到1个jar文件(MainMo
IntelliJ IDEA 2018.2.3(Community Edition)中的Kotlin多平台模板在中依赖于JUnit 4.12,用于项目的JVM部分: 值得注意的是,我使用的是Gradle4.10(一些较旧的示例使用,它从Gradle4.6起就被弃用了)。关于如何设置的文档已经过时并且稀少: 如上所示,IntelliJ中构建的默认项目模板不使用JUnit 5。 JUnit团队提供了示例
我一直在尝试使用Maven Shade插件获取jar,但仍然没有成功。 这是我的项目结构: 模块1(pom.xml): 模块2(pom.xml): 主模块(pom.xml): 根据这段代码,我得到了2个jar文件(Module1-version.jar和Module2-version.jar)。但这不是我想要的。我希望得到1个jar文件(MainModule-version.jar),它将包含另一