使用kotlin和Java混合开发Android项目爬坑记录
不定期将开发过程中遇到的问题添加在此处,加深记忆。
主要内容包括但不限于java与kotlin语言的一些区别,以及在使用android-studio进行开发过程中的一些小技巧
一、为现有项目添加Kotlin语言支持
1、在项目级别的build.gradle中添加如下代码
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.1'
//添加plugin
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
2、在module级别的build.gradle中添加如下代码
//这个必须添加
apply plugin: 'kotlin-android'
//按需添加 让项目可以使用类似像 Dagger 或者 Data Binding 这样的库。
//https://www.kotlincn.net/docs/tutorials/android-frameworks.html
apply plugin: 'kotlin-kapt'
//按需添加 让kotlin支持视图绑定,如直接使用layout中的id设置具体的值,
//不需要使用findViewById,或者butterKnife,可以直接用xml中的Id名
apply plugin: 'kotlin-android-extensions'
3、module级别的dependencies中添加如下代码
//按需添加 指定kotlin标准库依赖
//相关说明 https://www.kotlincn.net/docs/reference/using-gradle.html
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
如果项目中使用了butterknife和glide相关依赖需进行修改(将annotationProcessor),否则会出现兼容问题
纯java开发
annotationProcessor "com.jakewharton:butterknife-compiler:$rootProject.butterknifeVersion"
annotationProcessor "com.github.bumptech.glide:compiler:$rootProject.glideVersion"
java+kotlin混合开发
kapt "com.jakewharton:butterknife-compiler:$rootProject.butterknifeVersion"
kapt "com.github.bumptech.glide:compiler:$rootProject.glideVersion"
4、开发前的准备工作差不多就是以上三步,后续内容为开发过程中的一些问题及技巧记录。
注:初次导入因为没有将annotationProcessor改为kapt,导致使用butterKnife的地方奔溃,花了点时间没解决而且项目进度较赶一度放弃了引入kotlin,还有就是比较担心kotlin与java的兼容问题,以及学习成本较高会影响开发进度。后期经过不少开发者的安利终于上车,逐渐将部分功能使用kotlin实现。
二、在使用Android studio开发过程中的技巧
1、书写匿名内部类
java:
输入new之后就会有类似的类名提醒,或直接Ctrl+Shift+Space
kotlin:
输入object选择弹窗提示中后面带有annoymous的那一项或直接Ctrl+Shift+Space
2、直接使用xml文件中Id
- 手动导入页面对应布局文件(也可以直接用布局中id,然后光标定位到该Id同时按住Alt+Enter,即可自动导入,推荐自动导入方式)
import kotlinx.android.synthetic.main.act_play_manager.* - 使用布局中控件tv_text.text = "TextView文字"