NightWish 2018-06-13
新增的Kotlin项目需要使用DataBinding的时候要在module的build.gradle中添加如下配置
1,启用DataBinding,跟使用java语言时一样的配置
android { ... dataBinding { enabled = true } }
2,dependencies添加插件
dependencies { ... //kotlin使用DataBinding需要用到, 版本跟gradle一致 kapt "com.android.databinding:compiler:$gradle_version" }
3,文件末尾添加插件配置
kapt { generateStubs = true }
module的build.gradle举例如下
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { buildToolsVersion androidBuildTools compileSdkVersion androidTargetSdk defaultConfig { applicationId "com.xxx.xxx" minSdkVersion 19 targetSdkVersion androidTargetSdk versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { //minifyEnabled false //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } dexOptions { incremental true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } dataBinding { enabled = true } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" //kotlin使用DataBinding需要用到, 版本跟gradle一致 kapt "com.android.databinding:compiler:$gradle_version" //design compile 'com.android.support:design:25.3.1' //retrofit,OKHttp3 compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' //Retrofit2使用gson序列化 compile 'com.squareup.retrofit2:converter-gson:2.1.0' //okhttp3拦截器 compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' //GSON compile 'com.google.code.gson:gson:2.8.0' } //kotlin使用DataBinding需要用到 kapt { generateStubs = true }
project的build.gradle举例如下
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.1.51' ext.gradle_version = '3.0.1' repositories { google() jcenter() } dependencies { classpath "com.android.tools.build:gradle:$gradle_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } ext.androidBuildTools = '27.0.3' ext.androidTargetSdk = 25 } task clean(type: Delete) { delete rootProject.buildDir }