Kotlin使用前的准备
1.依赖的添加
buildscript { //指定kotlin的版本 ext.kotlin_version = "1.1.1" repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.2' //添加kotlin classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version" } }
apply plugin: 'com.android.application' //添加Kotlin支持Android的插件 apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 25 buildToolsVersion "25.0.1" defaultConfig { applicationId "com.ymtest" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } //添加Java的编译路径, 在main中创建kotlin文件夹, 用于存放kotlin代码(建议) 如果将.kt文件放到kotlin文件夹,又不指定java的编译路径,就会找不到类了. sourceSets { main.java.srcDirs += 'src/main/kotlin' } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:25.3.0' compile 'com.android.support:recyclerview-v7:25.3.0' //添加kotlin依赖 compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" }
2.kotlin插件的安装,安装方式可以参考 androidstudio关联genymotion的方法
现在就可以开始使用了,先写个java代码,然后转换成kotlin代码
转换方式:选择Code -> Convert Java File to Kotlin File, 就可以了, 然后创建kotlin文件夹,将转换好的“.kt”文件剪切到kotlin文件夹就行,如下图:
kotlin的官方github地址:https://github.com/JetBrains/kotlin
手册:https://www.kotlincn.net/docs/reference/basic-syntax.html
书籍:《Kotlin for android developers》中文版翻译 https://github.com/wangjiegulu/kotlin-for-android-developers-zh/blob/master/README.md
Kotlin与Java的使用对比(66的): https://github.com/MindorksOpenSource/from-java-to-kotlin/blob/master/README-ZH.md
如果是在studio3.0以上直接添加依赖就好了:
buildscript { ext.kotlin_version = '1.2.51' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" }