错误:无法在Android Studio 3.1.4中为KotlinTargetPreset获取未知属性"iosX64"?

WeC*_*Can 1 android gradle ios kotlin kotlin-multiplatform

嗨,我是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

的build.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
}
Run Code Online (Sandbox Code Playgroud)

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

我的系统配置:

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

Android Studio Android Studio 3.1.4

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

JRE:1.8.0_152-release-1024-b01 x86_64

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

Jus*_*nga 5

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

在我的情况下,它没有1.3 Kotlin Gradle插件版本.您现在将拥有多个.gradle文件.大概你的主项目会有这样的东西:

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

确保kotlin版本指向1.3.我使用了相同的示例项目,之前我有一个1.2.71.事后,事情开始为我工作.我确信还有更多的障碍,但这可能会让你更进一步.

  • 在撰写本文时,我使用了1.3.0-rc-57.我从他们的示例应用程序得到了这个:https://github.com/JetBrains/kotlin-examples/blob/master/tutorials/mpp-iOS-Android/build.gradle(确保你的gradle kotlin插件是1.3 IDE也是) (3认同)