美文网首页Kotlin android 开发
Start With Kotlin On Android

Start With Kotlin On Android

作者: jinkui | 来源:发表于2017-05-25 10:03 被阅读45次

    Android Studio 3.0 内置支持 Kotlin, 请安装3.0以上的 Android Studio。

    创建 Kotlin 项目

    在新建项目向导选择 Include Kotlin support,如下图所示:


    Android Studio 3.0 Canary 1 默认会出错:
    'com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava/util/List'
    解决办法: ext.kotlin_version = '1.1.2-3' 改成 ext.kotlin_version = '1.1.2-4'

    看看gradle的配置, 增加了哪些配置

    • 项目的 build.gradle
    buildscript {
        ext.kotlin_version = '1.1.2-4'
        repositories {
            maven { url 'https://maven.google.com' }
            jcenter()
        }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha1'
        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
        }
    }
    

    增加了classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

    • app 的 build.gradle
    apply plugin: 'com.android.application'
    apply plugin: 'kotlin-android'
    
    android {
        ......
    }
    
    dependencies {
        ......
        compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    }
    

    增加 kotlin-android 插件 和 kotlin-stdlib-jre7 依赖库

    kotlin代码文件后缀名.kt, Android Studio 默认保存到 src/main/java/, 如果要和java代码区分,一般可放到src/main/kotlin/, build.gradle 增加配置, 将文件夹配置到sourceSets,如下:

    android {
        sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
    

    Java代码转换为Kotlin代码

    如果有现成的Java代码,Android Studio 3.0 提供了转换工具,打开Java文件,选择 File > Convert Java File to Kotlin File,就会转成Kotlin代码。

    也可以新建一个Kotlin文件,复制粘贴Java代码,Studio就会弹出对话框提示是否转为Kotlin代码。

    Kotlin编写Android代码

    Kotlin兼容Java,所以和Java编写Android程序一样,可以直接调用Android APi,例如:

    class MainActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            mTextMessage = findViewById(R.id.message) as TextView
            val navigation = findViewById(R.id.navigation) as BottomNavigationView
            navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
        }
    }
    

    参考:Get Started with Kotlin on Android

    相关文章

      网友评论

        本文标题:Start With Kotlin On Android

        本文链接:https://www.haomeiwen.com/subject/hjvaxxtx.html