我应该为Android Studio 3.0 Canary 1使用哪些kotlin版本?

我有一个中型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" ... 

在我的应用程序模块的构建脚本中,相关的部分是:

 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) 

“这个”是错误的下划线,说它期望一个上下文! 并得到了一个MainActivity; 我的MainActivity被定义为:

 class MainActivity : AppCompatActivity() { 

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

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

您至少需要使用Kotlin 1.1.2-4 。 因此改变你的ext.kotlin_version

 ext.kotlin_version = '1.1.2-4' 

你可以修改build.gradle(Module:app)文件

 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" compile "org.jetbrains.anko:anko-commons:$anko_version" compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') { transitive = true; } compile "com.squareup.retrofit2:retrofit:$retrofit_version" compile "com.squareup.retrofit2:converter-gson:$retrofit_version" compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' compile 'com.android.support:design:25.3.1' 

}

至:

 dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation "org.jetbrains.anko:anko-commons:$anko_version" implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') { transitive = true; } implementation "com.squareup.retrofit2:retrofit:$retrofit_version" implementation "com.squareup.retrofit2:converter-gson:$retrofit_version" implementation 'com.android.support:appcompat-v7:25.3.1' implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' implementation 'com.android.support:design:25.3.1' 

}

那么红色的标识符将会消失。