我应该为Android Studio 3.0 Canary 1使用什么kotlin版本?

时间:2017-05-20 06:24:22

标签: android-studio kotlin kotlin-android-extensions

我有一个中型Kotlin项目,它使用anko和kotlin android扩展,特别是资源ID的合成属性。他们已经停止使用我升级到Android Studio 3.0 Canary 1.虽然看起来他们也已停止为AS 2.3.2工作。

以下是相关的顶级构建脚本:

buildscript {
    ext.kotlin_version = '1.1.2'
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
...

在我的app模块的构建脚本中,相关部分是:

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

repositories {
  mavenCentral()
  jcenter()
}

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'

    dataBinding {
      enabled = true
    }
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    compile 'org.jetbrains.anko:anko-sdk21:0.9.1'
    compile 'org.jetbrains.anko:anko-support-v4:0.9.1'
    compile 'org.jetbrains.anko:anko-appcompat-v7:0.9.1'

    kapt "com.android.databinding:compiler:2.5.0-alpha-preview-02"
}

kapt {
    generateStubs = true
}

我的命令行构建成功;事实上,IDE中的构建成功。但Kotlin现在给我所有合成财产用途的红色标识符。

一个可能的线索是,Kotlin似乎并不认为我的Activity(AppCompatActivity)是Context的子类:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    MultiDex.install(this)

" this"是错误下划线,说它期望一个上下文!并获得MainActivity;我的MainActivity定义为:

class MainActivity : AppCompatActivity() {

我的Kotlin IDE插件是1.1.2-4。我不知道如何将其恢复为旧版本。

我尝试重新安装Android Studio 2.3.2,但Kotlin插件都没有在那里工作。

1 个答案:

答案 0 :(得分:0)

您至少需要使用Kotlin 1.1.2-4。 因此,请更改ext.kotlin_version

ext.kotlin_version = '1.1.2-4'