Какие версии kotlin следует использовать для Android Studio 3.0 Canary 1?

У меня есть проект Kotlin среднего размера, в котором используются анко и расширения андроида kotlin, в частности синтетические свойства из идентификаторов ресурсов. Они все перестали работать с моим обновлением до 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, похоже, не признает мою активность (AppCompatActivity) как подкласс контекста:

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

«Это» подчеркнуто с ошибкой, говоря, что он ожидал контекста! и получил MainActivity; моя MainActivity определяется как:

 class MainActivity : AppCompatActivity() { 

Мой плагин IDE от Kotlin – 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' 

}

Затем красные идентификаторы исчезнут.