1

标题中的错误出现在 Android Studio 中,作为我所有代码上方的警告栏:错误

Android Studio 版本:Android Studio1.1.0
的 Kotlin 插件版本:0.11.91.AndroidStudio.4
build.gradle似乎正在使用所有最新版本的 Kotlin 库的文件:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "ca.amandeep.simpletransit"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile('com.squareup.retrofit:converter-simplexml:1.9.0') {
        exclude module: 'stax'
        exclude module: 'stax-api'
        exclude module: 'xpp3'
    }
    compile 'com.squareup.okhttp:okhttp:2.3.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.3.0'
    compile 'com.google.guava:guava:18.0'
    compile 'com.facebook.stetho:stetho:1.0.1'
    compile 'com.facebook.stetho:stetho-okhttp:1.0.1'
    compile 'com.jakewharton.timber:timber:2.7.1'
    compile 'io.reactivex:rxkotlin:0.21.0'
    compile 'io.reactivex:rxandroid:0.24.0'
    compile 'com.github.techfreak:wizardpager:1.0.0'
}
buildscript {
    ext.kotlin_version = '0.11.91.1'
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
        classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1'
    }
}
repositories {
    mavenCentral()
}

apply plugin: 'com.jakewharton.hugo'
4

2 回答 2

1

我认为他们错误地打包了这个版本。github上有一个关于这个的问题:

https://github.com/ReactiveX/RxKotlin/issues/18

也许你应该ping它。

于 2015-04-29T09:05:01.990 回答
1

此问题已在 Kotlin M12 的 RxKotlin 版本中得到解决。这不再是一个问题。

关于错误信息...

当 Kotlin 创建的类文件的 ABI 版本号与 Kotlin 编译器使用的预期不匹配时,会出现“不支持的格式”错误。这不再是 Kotlin 1.0 Beta 的问题,因为 1.0 的 ABI 编号不会再次更改。但是,在 1.0 候选版本中将进行一次强制重新编译,以确保没有旧的编译器错误影响库或代码,并且一切都被重新构建干净。之后就不会存在这样的问题了。

因此,如果一个库没有使用相同的 ABI 更新,或者点击了最后一个“1.0 重新编译”,您可能会遇到类似的错误。解决方案始终是找到更新的库。

Kotlin 1.0 Beta 4 公告“下一步是什么”部分中了解更多信息:

Beta 期结束后,会有一个 RC,然后是 1.0。

我们真的很想确保在 1.0 之后没有保留使用 Kotlin 预发布版本编译的代码,因此 RC 编译器将强制重新编译所有旧代码。我们将与 JetBrains 之外的库维护人员协调,以确保及时重新编译所有广泛使用的库。

此时,我们还将借此机会删除一些遗留问题:

  • 删除我们在库发展过程中积累的所有弃用,
  • 从生成的代码中删除所有弃用(您可能没有听说过这些,但它们存在!),
  • 摆脱在测试期间发现的一些遗留字节码特性,
  • 移动一些 stdlib 代码,以便那里的包具有更多结构。

在那之后,对标准库的唯一兼容更改是弃用和添加(这不包括反射 API)。我们正在对库 API 进行公开审查,以确保我们没有遗漏任何重要内容。

于 2016-01-04T18:39:25.693 回答