Kotlin开发是未来Android开发的一种趋势,不少公司也开始用Kotlin来重构项目。在业余时间,我自学了Kotlin,在kotlin的使用中也遇到不少坑,所以简单总结了一下,以后遇到问题会一一补上来。
1. 创建第一个纯粹的kotlin项目遇到的坑:
1.1 在创建Kotlin项目的最后一个步骤,选择Add no Activity,点击创建成功。
1.2 针对这种情况,有两个地方需要改:gradle配置和AndroidMainfest,我就是在这两个地方出了错,报的错都是“Error.Execution failed for task':app:processDebugResources'.>”
1.3 解决方法
A.在project的gradle配置加上
buildscript {
ext.kotlin_version = "1.0.4"
repositories {
...
}
dependencies {
...
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
...
B.在Module的gradle配置加上
...
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
...
defaultConfig {
...
}
buildTypes {
...
}
}
dependencies {
...
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7'
}
C.在AndroidMainfest加上启动页面,否则运行不了。
<application ...>
<activity ...>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
2.Kotlin重构遇到的两个坑:
2.1 Kotlin代码从上往下执行。写Java代码时,我们习惯把成员变量的adapter写在后面。在Java代码转成Kotlin之后就会报错,当前面的代码调用后面的Kotlin代码的adapter时,因为adapter在后面,根据Kotlin从上往下的执行顺利,这时的adapter为null,在运行的时候就会报错。所以adapter的数据应当放在Kotlin代码的前面(类中方法外)。
2.2 Kotlin方法参数带上可空类型'?'。Kotlin代码方法带的参数可能为空,在方法参数类型后面记得加上‘?’,否则当参数出现空时会直接崩溃。
3 Java转化Kotlin代码:
Java代码转化成Kotlin代码时,可以通过快捷键Shift+Ctrl+Alt+K快速把Java转化成Kotlin,或者选中Code->Convert Java File to Kotlin File也可以。