在Kotlin学习中遇到的坑

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也可以。

猜你喜欢

转载自my.oschina.net/u/3286162/blog/1543700