首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Kotlin/原住民中构建kotlinx.coroutines (测试版本0.23.4-原生-1)

如何在Kotlin/原住民中构建kotlinx.coroutines (测试版本0.23.4-原生-1)
EN

Stack Overflow用户
提问于 2018-07-24 09:05:02
回答 1查看 1.5K关注 0票数 2

这个问题是这个线程:https://github.com/Kotlin/kotlinx.coroutines/issues/246#issuecomment-407023156的延续。

我试图在一个针对org.jetbrains.kotlinx:kotlinx-coroutines-core-native:0.23.4-native-1的Kotlin/本地项目中使用iOS。

build.gradle

代码语言:javascript
复制
buildscript {
    repositories {
        mavenCentral()
        maven { url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies" }
    }

    dependencies {
        classpath 'org.jetbrains.kotlin:kotlin-native-gradle-plugin:0.8'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.51"
    }
}

apply plugin: 'kotlin-platform-native'

repositories {
    jcenter()
    mavenCentral()
    maven { url "https://kotlin.bintray.com/kotlinx" }
}

sourceSets {
    main {
        component {
            target 'ios_arm32', 'ios_arm64', 'ios_x64'
            outputKinds = [KLIBRARY]
        }
    }
}

dependencies {
    expectedBy project(':common')
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-native:0.23.4-native-1"
}

kotlinx:kotlinx-coroutines-core-native依赖项似乎不起作用,因为生成的构建错误如下:

代码语言:javascript
复制
error: unresolved reference: coroutines
import kotlinx.coroutines.experimental.*
               ^

如果手动包含工件依赖项(如org.jetbrains.kotlinx:kotlinx-coroutines-core-native_release_ios_x64:0.10.3-native ),则会得到一个编译器异常:

代码语言:javascript
复制
exception: java.lang.IllegalStateException: Could not find "atomicfu-native"

即使我还添加了org.jetbrains.kotlinx:atomicfu-native:0.10.3-native依赖项,此错误仍然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-24 09:30:34

下面列出了要检查的事情(我已经经历过这个问题,并最终成功了):

  • 启用Gradle元数据。检索协同依赖项是必需的。要做到这一点,请在"settings.gradle“文件中添加这一行,在所有”包含“说明之后: enableFeaturePreview('GRADLE_METADATA')
  • 使用gradle 4.7 (更新版本与当前协同库的元数据不兼容,需要0.4版本的内容,当前发布的版本使用0.3)
  • 在iOS模块中: 实现"org.jetbrains.kotlinx:kotlinx-coroutines-core-native:0.23.4-native-1“
  • 在您的公共模块中: 实现"org.jetbrains.kotlinx:kotlinx-coroutines-core:0.23.4“
  • 如果您有一个js模块,它可能会因为gradle元数据特性而失败。您可以通过在每个“存储库”块(https://github.com/srs/gradle-node-plugin/issues/301)之前添加它来修复它。 repositories.whenObjectAdded { if (它实例IvyArtifactRepository) { metadataSources {工件()}

希望这就足够了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51494681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档