一、安装Kotlin插件
1、在as中添加Kotlin插件,下载这个插件需要开挂,但是我找到了更好的方法,我没有试过,希望大家试一试把结果告诉我:
方法1:从阿里云的地址下载:
Module的build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'//这里添加
apply plugin: 'kotlin-android-extensions'//这里添加
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.xiaolei.kotlinapp"
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'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//主要是这两个依赖
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
//下面这个依赖我自己试的时候不能加,不知道为什么很多人加上都没事,我不加没事,加了反而出事,不明白了。。
//compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
}
repositories {
//修改成国内阿里云的maven地址,否则某些地方下载不下来
maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
Project的build.gradle
buildscript {
ext.kotlin_version = '1.1.0'
repositories {
maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
方法二:从其他地址手动下载,然后再附加到as
插件地址:http://download.csdn.net/detail/feibendexiaoma/9848739
先下载好插件,然后同样File–>Settings–>Plugins–>Install Plugin from disk 选择你本地已经下载好的kotlin插件。
二、提高kotlin项目编译运行速度
据说现在的AS编译运行kotlin项目的速度很慢,所以网上有人给出了解决办法:
项目根目录的gradle.properties里加
kotlin.incremental=true
三、让kotlin自动识别布局文件中的View
写findViewById()是在太烦,还得强制转换,显得太low怎么办?用ButterKnife?实际上官方已给我们提供了解决方案。这个官方当然不是狗哥,而是我们的jetbrains神!
//在module的build.gradle最上面加上这句话:
apply plugin: 'kotlin-android-extensions'//这货是kotlin插件里的一个拓展包
然后在Activity里引入
import kotlinx.android.synthetic.main.「布局文件名称,如:activity_main」.*
然后就可以直接用View的id来对View进行设置了,如:
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_start.*
class StartActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_start);
//直接用布局文件中View的id来调用
iv1.setImageResource(R.drawable.abc_ab_share_pack_mtrl_alpha);
}
}
参考资料:
http://www.cnblogs.com/princenwj/p/6888226.html


所有评论(0)