Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
构建iOS应用程序时Kotlin/Native Compilekotlinosx64任务失败_Kotlin_Multiplatform_Kotlin Multiplatform_Kotlin Native - Fatal编程技术网

构建iOS应用程序时Kotlin/Native Compilekotlinosx64任务失败

构建iOS应用程序时Kotlin/Native Compilekotlinosx64任务失败,kotlin,multiplatform,kotlin-multiplatform,kotlin-native,Kotlin,Multiplatform,Kotlin Multiplatform,Kotlin Native,我有一个Kotlin多平台项目。我最近更新了Kotlin 1.4-M2(我需要它来解决Ktor的一些问题)。 在更新所有必需的库、解决所有gradle问题并成功编译我的Android项目后,我现在在构建iOS应用程序时遇到以下错误: Task :shared:compileKotlinIosX64 e: Compilation failed: Could not find declaration for unbound symbol org.jetbrains.kotlin.ir.symbols

我有一个Kotlin多平台项目。我最近更新了Kotlin 1.4-M2(我需要它来解决Ktor的一些问题)。 在更新所有必需的库、解决所有gradle问题并成功编译我的Android项目后,我现在在构建iOS应用程序时遇到以下错误:

Task :shared:compileKotlinIosX64
e: Compilation failed: Could not find declaration for unbound symbol org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionPublicSymbolImpl@56f11f08
* Source files: [all shared folder kt files]
 * Compiler version info: Konan: 1.4-M2 / Kotlin: 1.4.0
 * Output kind: LIBRARY
e: java.lang.IllegalStateException: Could not find declaration for unbound symbol org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionPublicSymbolImpl@56f11f08
    at org.jetbrains.kotlin.ir.util.ExternalDependenciesGeneratorKt.getDeclaration(ExternalDependenciesGenerator.kt:76)
奇怪的是,在源文件中,它显示了共享代码文件夹中的所有文件。我检查过了,所有的kt文件都出现在那里。因此,我的猜测是,在构建共享代码时,这是一个问题,但似乎并不是任何库的特定问题

这是我的build.gradle.kts外观的略微简化版本:

plugins {
    kotlin("multiplatform")
    kotlin("native.cocoapods")
    id("kotlinx-serialization")
    id("com.android.library")
    id("io.fabric")
}

// CocoaPods requires the podspec to have a version.
version = "1.0"

tasks {
    withType<KotlinCompile> {
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }
}

kotlin {
    ios()
    android()

cocoapods {
    // Configure fields required by CocoaPods.
    summary = "Some description for a Kotlin/Native module"
    homepage = "Link to a Kotlin/Native module homepage"
}

sourceSets {
        val commonMain by getting {
            dependencies {
                implementation("org.jetbrains.kotlin:kotlin-stdlib-common")
                implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serializationVersion")
                api("org.kodein.di:kodein-di:7.1.0-kotlin-1.4-M3-84")
                implementation("io.mockk:mockk:1.9.2")

                api("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")

                api("com.russhwolf:multiplatform-settings:$multiplatformSettingsVersion")

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

值得一提的是,在使用1.3.72时,这是在iOS中正确构建的。

正如@KevinGalligan所建议的,我将Kotlin和所有相关LIB更新为1.4.0-rc,问题得到了解决


1.4-M2的根本问题仍然未知。

第一个问题,Mockk是如何工作的?没有本机实现。@KevinGalligan问得好!没有。我首先为Android开发了这个应用程序,并在那里使用了它,而不知道这个小细节。现在我再也不能用它了。我将很快删除它…另外,除非库不可用,否则我将转到RC版本,而不是M2@KevinGalligan是的,我一直坚持这一点是因为合作项目,但实际上我只是检查了一下,他们昨天才发布。我会给你一个机会的try@KevinGalligan谢谢你的建议,它奏效了。
val ktorVersion = "1.3.2-1.4-M2"
val kotlinVersion = "1.4-M2"
val coroutinesVersion = "1.3.7-native-mt-1.4-M2"
val serializationVersion = "0.20.0-1.4-M2"
val multiplatformSettingsVersion = "0.6-1.4-M2"