Kotlin 一个基于JVM新的编程语言,由JetBrains公司开发,据说是Android开发者的福利,相对于Java代码安全,简洁,最明显的就是不用像Java那样处理空指针异常。所以先一点一点的研究一下。
1 使用的android Studio 工具,首先先new了一个新的项目
2 在项目的build.gradle里添加
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
// ext.kotlin_version = "1.0.0-rc-1036"
ext.kotlin_version = "1.1.1"
}
蓝色字,本来看其他的文档说是可以添加蓝色字的上一行,可是在运行的时候会报错Error:Execution failed for task ':app:compileDebugKotlin'. > com.intellij.openapi.fileTypes.LanguageFileType.<init>(Lcom/intellij/lang/Language;)V
问题查找了说是貌似IDEA在添加Kotlin的时候有些配置没有添加进去,后来就在这里将版本升到了1.1.1
3 在模块的build.gradle里添加
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
第一个用来编译Android 代码 第二句话用来扩展绑定关系,具体我也不太了解就这么添加上了
3.1 在模块的build.gralde里继续添加:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
3.2 添加依赖
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
这些操作都完成之后,build一下就好了
4 添加Kotlin插件
我使用的Mac 版Studio 所以直接截图喽
然后
这样之后点击ok插件就装好了,然后我们将MainActivity转换成Kotlin代码 快捷键command+Shift+A
选择
就可以将java文件转换成 Kotlin文件了,这样你运行一下就可以见到Hello Kotlin了
mainActivityJava代码:
package com.yaqingxing.mykotlintest
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
main_tv_message.text = "Hello Kotlin"
main_tv_message.textSize = 20.0f
}
}
模块的build,gradle里的整体代码在这里也贴出来
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.yaqingxing.mykotlintest"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
剩下的还要继续研究,在这里我参考了两个文章第一个:http://www.jianshu.com/p/cf1f96c56150 Kotlin(1) -初探与集成Android项目
第二个:http://www.mamicode.com/info-detail-1768492.html 我起初提到的bug解决文章
“革命”尚未成功,我这个同志仍需努力努力在、再努力!