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

  • La class Kotlin Custom View implementa una interfaz que no se puede resolver en `: app: compileDebugKotlinAfterJava`. La versión idéntica de Java funciona bien
  • ¿Por qué la configuration de OnClickListener funciona una vez?
  • Las classs de Kotlin que contienen android-extensiones no se basan en construcciones consecuentes
  • La diferencia entre !! y? en Kotlin
  • Hacer reference a las vistas con la misma identificación en diferentes layouts con extensiones de android kotlin
  • Métodos estáticos como en la aplicación de Android con kotlin
  • Cómo modificar la variable de instancia de AsyncTask por separado
  • Kotlinx inyecta vista desde el layout incorrecto
  • La biblioteca de Android no puede comstackr kotlin
  • Comience un proyecto con la ayuda de Kotlin en Android
  • Error: ejecución fallida para la tarea ': aplicación: limpiar'. No se puede borrar el file