¿Qué versión (s) de Kotlin debería usar para Android Studio 3.0 Canary 1?

Tengo un proyecto de Kotlin de tamaño medio que usa anko y las extensiones de android kotlin, específicamente las properties sintéticas de los ID de resources. Todos han dejado de funcionar con mi actualización a Android Studio 3.0 Canary 1. Aunque parece que también dejaron de funcionar para AS 2.3.2.

Aquí está el script de compilation de nivel superior relevante:

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" ... 

Y en el script de construcción de mi module de aplicación, las partes relevantes son:

 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 } 

Mi compilation de command-line tiene éxito; de hecho, la construcción en el IDE tiene éxito. Pero Kotlin me da identificadores rojos para todos mis usos de properties sintéticas ahora.

Una pista posible es que Kotlin no parece reconocer mi actividad (una actividad de aplicación) como una subclass de context:

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

¡El "esto" está subrayado por error, diciendo que esperaba un context! y obtuve una actividad principal; mi MainActivity se define como:

 class MainActivity : AppCompatActivity() { 

El complemento IDE de mi Kotlin es 1.1.2-4. No sé cómo revertirlo a una versión anterior.

Traté de volver a instalar Android Studio 2.3.2 pero ninguno de los complementos de Kotlin están trabajando allí tampoco.

Deberá usar al less Kotlin 1.1.2-4 . Por lo tanto, cambie su ext.kotlin_version :

 ext.kotlin_version = '1.1.2-4' 

puede modificar el file build.gradle (Module: app) de

 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' 

}

A:

 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' 

}

Entonces los identificadores rojos desaparecerán.

  • Los methods de logging de Anko no se pueden resolver
  • Kotlin RC NoClassDefFoundError
  • Cambiar el filter de color del elemento del cajón de navigation también cambia el imageView, que es el mismo ID de image
  • Extensión sintética Kotlin para ver
  • registerReceiver () muestra error por método sobrecargado
  • Extienda la comprobación de Mockito para que Kotlin no funcione (de manera "kotlin")
  • Este tipo tiene un constructor y debe ser inicializado aquí - Kotlin
  • Kotlin Elimina todos los caracteres no alfanuméricos
  • Imposible get datos de la database sqlite
  • Kotlin, Java, multidex, Dagger 2, Butterknife y Realm: transformClassesWithJarMergingForDebug: input duplicada: org / jetbrains / annotations / NotNull.class
  • Android Kotlin - Volley Código de respuesta inesperada 400