world tutorial the supports support plugin only higher hello compiler and android data-binding kotlin

tutorial - Problema con el enlace de datos usando Kotlin para Android



the android gradle plugin supports only kotlin gradle plugin version 1.2.51 and higher (2)

Edición: Con Kotlin 1.1 y Kapt3 funciona ligeramente diferente:

en tu proyecto build.gradle :

buildscript { ext { ... plugin_version = "2.3.1" kotlin_version = "1.1.2-3" ... } ... dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "com.android.tools.build:gradle:$plugin_version" ... } }

y en tu app build.gradle :

apply plugin: "kotlin-android" apply plugin: "kotlin-kapt" ... android { ... dataBinding { enabled = true } ... } dependencies { ... kapt "com.android.databinding:compiler:$plugin_version" ... }

Es realmente importante que la versión del compilador de enlace de datos y la versión del complemento sean idénticas.
También tenga en cuenta que con kapt3 , ya no debe usar la kapt3 generateStubs .

Respuesta antigua

Tener el complemento de Android Studio habilitado no es suficiente, también necesita ajustar un poco sus archivos de gradle (agregue y aplique el kotlin-gradle-plugin ) Aquí hay algunos extractos de mis archivos de gradle con Java y Kotlin Databinding.

En tu proyecto build.gradle :

buildscript { ... dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.5" classpath ''com.android.tools.build:gradle:2.2.3'' ... } }

y en tu app build.gradle :

apply plugin: "kotlin-android" ... android { ... dataBinding { enabled = true } ... } kapt { generateStubs = true } dependencies { ... kapt "com.android.databinding:compiler:2.2.0" ... }

(Estoy usando una versión más reciente del compilador de enlace de datos aquí, probablemente debería hacer esto también)

Estoy tratando de habilitar el enlace de datos para mi proyecto de Android usando Kotlin. Tengo el complemento Kotlin habilitado, pero no puedo habilitar el enlace de datos. Sigo recibiendo el siguiente error

Error:(66, 0) Could not find method kapt() for arguments [com.android.databinding:compiler:2.0.0-beta6] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler

Tengo las siguientes dependencias para el enlace de datos en mi archivo de gradle

dependencies { ... kapt ''com.android.databinding:compiler:2.0.0-beta6'' } kapt { generateStubs = true }


Intente incluir los bloques que faltan en sus archivos de gradle con la ayuda de la siguiente fuente de referencia de archivo de gradle.

Nivel de aplicación Build.Gradle

apply plugin: ''com.android.application'' apply plugin: ''kotlin-android'' apply plugin: ''kotlin-android-extensions'' apply plugin: ''kotlin-kapt'' android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { applicationId "com.example.adventure.abc" minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' } } sourceSets { main.java.srcDirs += ''src/main/kotlin/com/dougritter/marvelmovies'' } dataBinding { enabled = true } } kapt { generateStubs = true } dependencies { //Compatibility compile fileTree(dir: ''libs'', include: [''*.jar'']) compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" androidTestCompile(''com.android.support.test.espresso:espresso-core:2.2.2'', { exclude group: ''com.android.support'', module: ''support-annotations'' }) kapt ''com.android.databinding:compiler:2.3.0'' //Libraries testCompile ''junit:junit:4.12'' compile ''com.android.support:appcompat-v7:25.3.1'' compile ''com.android.support:design:25.3.1'' compile ''com.android.support:support-vector-drawable:25.3.1'' compile ''com.android.support:support-v4:25.3.1'' compile project('':domain'') compile project('':androidutils'') compile ''com.android.support.constraint:constraint-layout:1.0.2'' compile ''com.jakewharton.timber:timber:4.5.1'' }

Nivel de proyecto Build.Gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = ''1.1.2-2'' repositories { maven { url ''https://maven.google.com'' } jcenter() } dependencies { classpath ''com.android.tools.build:gradle:3.0.0-alpha1'' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() maven { url ''https://maven.google.com'' } mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir }