您好,我是 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。
Android Studio Android Studio 3.1.4
内部版本 #AI-173.4907809,构建于 2018 年 7 月 24 日
JRE:1.8.0_152-release-1024-b01 x86_64
JVM:JetBrains s.r.o 提供的 OpenJDK 64 位服务器 VM
最佳答案
我刚才遇到了同样的问题,由于缺乏答案,我继续搜索。第一次尝试运行示例项目意味着我的设置中一定有一些东西。
就我而言,它没有 1.3 Kotlin Gradle 插件版本。 现在您将拥有多个 .gradle 文件。想必你的主项目会有这样的内容:
类路径
“org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version”
确保 kotlin 版本指向 1.3 版本。我使用了与示例项目相同的版本,并且之前有 1.2.71。从那以后事情开始对我有用。我确信还有更多的障碍需要克服,但这可能会让你走得更远。
关于android - 错误 : Could not get unknown property 'iosX64' for KotlinTargetPreset in Android Studio 3. 1.4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52659411/