嗨,我是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
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。
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 s.r.o的OpenJDK 64位服务器VM
答案 0 :(得分:5)
我遇到了同样的问题,由于缺乏答案,我继续进行搜索。首次尝试运行示例项目意味着我的设置中必须包含某些内容。
就我而言,它没有1.3 Kotlin Gradle插件版本。 现在您将有多个.gradle文件。大概您的主要项目将具有以下内容:
classpath
"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
确保kotlin版本指向1.3。我使用的示例项目相同,之前的版本是1.2.71。在那之后事情开始对我起作用。我敢肯定还有更多障碍,但这可能会使您更进一步。