2

嗨,我是 Android 和 Kotlin 环境的新手,我来自原生 iOS 背景。

我想创建一个 Kotlin MultiPlatform 应用程序,它可以在 Android 和 iOS 上运行。

为此,我正在关注此 https://kotlinlang.org/docs/tutorials/native/mpp-ios-android.html

从上述文档中完成更新 Gradle 脚本过程后,我面临以下问题:

无法为 org.gradle.api.internal.FactoryNamedDomainObjectContainer 类型的 KotlinTargetPreset 容器获取未知属性“iosX64”。

我的 build.gradle 文件路径是/Kotlin_Practice/KTMPDemo/SharedCode/build.gradle

构建.gradle

apply plugin: 'kotlin-multiplatform'

kotlin {
    targets {
        final def iOSTarget = System.getenv('SDK_NAME')?.startsWith("iphoneos") \
                              ? presets.iosArm64 : presets.iosX64
        fromPreset(iOSTarget, 'iOS') {
            compilations.main.outputKinds('FRAMEWORK')
        }
        fromPreset(presets.jvm, 'android')
    }
    sourceSets {
        commonMain.dependencies {
            api 'org.jetbrains.kotlin:kotlin-stdlib-common'
        }
        androidMain.dependencies {
            api 'org.jetbrains.kotlin:kotlin-stdlib'
        }
    }
}
// workaround for https://youtrack.jetbrains.com/issue/KT-27170
configurations {
    compileClasspath
}

我可以更新/降级我的 Gradle 吗?我该如何解决上述问题?谢谢你。

我的系统配置:

Mac mini(2014 年末),macOS High Sierra,v10.13.5。

安卓工作室安卓工作室 3.1.4

构建 #AI-173.4907809,构建于 2018 年 7 月 24 日

JRE:1.8.0_152-release-1024-b01 x86_64

JVM:JetBrains sro 的 OpenJDK 64 位服务器 VM

4

1 回答 1

5

我刚才遇到了同样的问题,由于缺乏答案,我继续搜索。第一次尝试运行示例项目意味着我的设置中必须有一些东西。

就我而言,它没有 1.3 Kotlin Gradle 插件版本。您现在将拥有多个 .gradle 文件。大概您的主要项目将具有以下内容:

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

确保 kotlin-version 指向 1.3 版本。我使用与示例项目相同的内容,并且之前有一个 1.2.71。在那之后,事情开始对我有用。我敢肯定还有更多的障碍需要克服,但这可能会让你走得更远。

于 2018-10-07T19:00:55.363 回答