Android开发:Kotlin下配置DataBinding

简介: 近日,随着Google召开了Google I/O 2017,Kotlin大火一把。因为Google宣布Kotlin为First-class开发语言作 为一名Kotlin忠实粉丝,高兴地很呀。

近日,随着Google召开了Google I/O 2017,Kotlin大火一把。因为Google宣布Kotlin为First-class开发语言作 为一名Kotlin忠实粉丝,高兴地很呀。虽然短
时间内不太可能替代Java,但这次官宣意味承认了Kotlin在Android开发中的合法地位,让想尝试Kotlin却有顾率的开发者可以放心地使用Kotlin(比如说我)。
有人说没必要尝试Ktolin,Kotlin没有什么吸引人的地方,相比java没简洁多少,只不是多一些语法糖而已。对我而言,我就是喜欢这些语法糖。当然了,此时也
应该回想回想Eclipse。Kotlin有诸如kotlin-android-extensions 以及Anko这种优秀的插件或者库,但是我也很偏爱Databinding。下面就讲如何让kotlin与databinding合谐并存

开发环境

AndroidStudio 2.3.2
Kotlin:1.1.2-3

安装Kotlin插件

打开settings去plugin里面搜索kotlin,然后install就可以了。以在tools里面我们就可以查看kotlin了,在这里可以进行检查更新什么的。
安装完之后,可以双击shift然后弹出了一个对话框,在里面输入

 configure kotlin in project

然后可以选择配置整个project还是单个Module。

gradle配置

经历过以上步骤,你会发现你的Project下面的build.gradle变成这样的了

buildscript {

    ext.kotlin_version = '1.1.2-3'
    repositories {
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:2.3.2"
        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
    }
}

而module的build.gradle是这样的

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
  ....
    dataBinding {
        enabled true
    }
}
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"
 
    testCompile 'junit:junit:4.12'
}

正常来说,经过以上步骤我们就可以正常使用kotlin了,但是等等!!!今天的主角好像不是怎么配置kotlin,我们的目的是让kotlin与databinding共存。所以在你的Module的build.gradle还要加上一句:

apply plugin: 'kotlin-kapt'
...
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"
    kapt 'com.android.databinding:compiler:2.3.2'
    testCompile 'junit:junit:4.12'
}

其中databinding complier的版本也就是2.3.2其实是和Project下的gradle版本是一样的,当然了可以不一样,如用2.3.1。
为了方便管理实际工作中我是这样配置的

buildscript {

    ext.kotlin_version = '1.1.2-3'
    ext.gradle_version = '2.3.2'
    repositories {
        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
    }
}
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"
    kapt "com.android.databinding:compiler:$rootProject.ext.gradle_version"
    testCompile 'junit:junit:4.12'
}

AndroidStudio3.0

AndroidStudio3.0默认集成了kotlin,我们只需要configure一下就好了。但是3.0用的kotlin用的应该是1.1.2-4,这个版本和as3.0可能有冲突,可能会出一个circular dependencies的错误。这个时候你需要在```gradle.properties或者 local.properties加入:kotlin.incremental=false

如果依然不好用可能需要降低kotlin或者databinding compiler的版本了。

目录
相关文章
|
16天前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
125 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
23天前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
204 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
24天前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
374 3
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
7月前
|
开发工具 Android开发 iOS开发
如何在Android Studio中配置Flutter环境?
如何在Android Studio中配置Flutter环境?
1647 61
|
2月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
407 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
21天前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
82 0
|
2月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
137 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
2月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
153 6
|
4月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
289 11
|
4月前
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
145 0

热门文章

最新文章