无法解决以下项的依赖项:无法解决org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:0.8.1-rc13

时间:2018-09-28 12:48:22

标签: kotlin kotlin-native kotlinx.serialisation

在Kotlin / Native示例项目中,由于未解决的依赖关系,我收到了gradle构建错误。

  

无法解决:org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:0.8.1-rc13

我的build.gradle(通用模块)看起来像

java.lang.NullPointerException

Build.gradle(平台-Android级)

apply plugin: 'kotlin-platform-common'
apply plugin: 'kotlinx-serialization'
repositories {
mavenCentral()
maven { url "https://kotlin.bintray.com/kotlinx" }
jcenter{ url "https://jitpack.io" }
jcenter()
maven { url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies" }
maven { url "http://kotlin.bintray.com/kotlin-dev" }
maven { url "https://dl.bintray.com/kotlin/kotlin-eap" }
maven { url "https://dl.bintray.com/sandwwraith/libs-preview/"}
mavenLocal()

}

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$serialization_version"

}

}

项目级别Build.gradle如下:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-platform-android'
android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.phonepe.mykotlinnativesample"
    minSdkVersion 15
    targetSdkVersion 27
    versionCode 2
    versionName "2.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

def butterknife_version = '8.8.1'
repositories{
    mavenCentral()
    maven { url "https://kotlin.bintray.com/kotlinx" }
    jcenter{ url "https://jitpack.io" }
    jcenter()
    maven { url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies" }
    maven { url "http://kotlin.bintray.com/kotlin-dev" }
    maven { url "https://dl.bintray.com/kotlin/kotlin-eap" }
    maven { url "https://dl.bintray.com/sandwwraith/libs-preview/"}
    mavenLocal()
}
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation "com.jakewharton:butterknife:$butterknife_version"
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.google.dagger:dagger-android:2.16'
implementation 'com.google.dagger:dagger-android-support:2.16' // if you use the support libraries
kapt 'com.google.dagger:dagger-android-processor:2.16'
kapt 'com.google.dagger:dagger-compiler:2.16'
implementation 'com.android.support:exifinterface:27.1.1'
expectedBy project(":common")

settings.gradle ::

apply plugin: 'kotlinx-serialization'
buildscript {
    ext.kotlin_version = '1.3.0-rc-131'
    ext.serialization_version = '0.8.1-rc13'
    ext.serializationRepo = "https://dl.bintray.com/kotlin/kotlinx/"
    ext.serialization_plugin_version="1.3.0-rc-131"
repositories {
    google()
    jcenter()
    maven {
        url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
    }
    maven { url "https://kotlin.bintray.com/kotlinx" }
    maven { url "https://dl.bintray.com/kotlin/kotlin-eap" }
    maven { url "http://kotlin.bintray.com/kotlin-dev" }
    maven { url "https://plugins.gradle.org/m2/" }
    maven { url "https://dl.bintray.com/sandwwraith/libs-preview/"}
    mavenLocal()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.4'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:0.9.2"
    classpath "org.jetbrains.kotlin:kotlin-serialization:$serialization_plugin_version"
      }
}

allprojects {
    repositories {
    google()
    jcenter()
    maven {
        url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
    }
    maven { url "https://kotlin.bintray.com/kotlinx" }
    maven { url "https://dl.bintray.com/kotlin/kotlin-eap" }
    maven { url "http://kotlin.bintray.com/kotlin-dev" }
    maven { url "https://dl.bintray.com/sandwwraith/libs-preview/"}
    mavenLocal()
}
}
repositories {
    google()
    jcenter()
    maven {
    url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
    }
    maven { url "https://kotlin.bintray.com/kotlinx" }
    maven { url "https://dl.bintray.com/kotlin/kotlin-eap" }
    maven { url "http://kotlin.bintray.com/kotlin-dev" }
    maven { url "https://dl.bintray.com/sandwwraith/libs-preview/"}
    mavenLocal()
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我可以使用哪些正确的版本和存储库来进行序列化?

1 个答案:

答案 0 :(得分:0)

您附加的设置有点奇怪,因为您将Kotlin / Native的'konan'插件与'kotlin-platform-common'插件应用于同一模块。首先,不赞成使用“ konan”,而用“ kotlin-platform-native”代替。其次,这些插件应应用于不同的gradle模块,请参见kotlin multiplatform reference

关于序列化,它现在有两种形式:一是因为Kotlin 1.2的版本号为0.6.x(1.2.70为0.6.2),并且不支持Kotlin / Native。只能提供单独的json parser。第二种口味,因为Kotlin 1.3处于开发阶段,编号为0.8.x-rc13(对于Kotlin / Native 0.9.2,最新数字为0.8.1-rc13),并且确实在单独的工件中包含K / N支持,坐标为“ kotlinx-serialization-runtime-native”。 Kotlin 1.3预览版的序列化文档揭示了更多信息:https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/eap13.md

还有一个专用的example of setup,其中包含带有序列化的多平台项目的即用型存根。分支native_preview使用上述的Kotlin 1.3-rc,K / N 0.9.2和序列化0.8.1。