文档章节

AndroidStudio配置Kotlin开发环境

猴亮屏
 猴亮屏
发布于 2017/07/10 14:47
字数 552
阅读 51
收藏 0

一、安装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

© 著作权归作者所有

共有 人打赏支持
猴亮屏

猴亮屏

粉丝 35
博文 517
码字总数 56802
作品 4
北京
Android工程师
Cocos2d-x 3.4在AndroidStudio上编译配置

1.准备好以下文件   1) AndroidStudio: https://dl.google.com/dl/android/studio/install/1.1.0/android-studio-bundle-135.1740770-windows.exe   2) NDK:https://dl.google.com/and......

simpower
2015/07/31
0
0
AS 升级之Gradle's dependency cache may be corrupt问题解决办法

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/60589629 问题: 今天,发现自己的AndroidStudio可以升...

紫雾凌寒
2017/03/06
0
0
图文详解Android Studio搭建Android集成开发环境的过程

有很长一段时间没有更新博客了,最近实在是太忙了,没有时间去总结,现在终于可以有时间去总结一些Android上面的东西了,很久以前写过这篇关于使用Android Studio搭建Android集成开发环境,不...

查杰
06/29
0
0
Android 尝试解决 Gradle 升级时 offline mode 类型问题

小菜每次升级 AndroidStudio 和 Gradle 都倍感头疼,没有梯子真的好痛苦,这次小菜从 2.3.3 升级到 3.1.4 版本,被 Gradle 的 offline modle 问题困扰了很久,现在整理一下小菜的处理方式。 ...

阿策神奇
08/14
0
0
Android批量打包-如何一秒内打完几百个apk渠道包

在国内Android常用渠道可能多达几十个,如: 谷歌市场、腾讯应用宝、百度手机助手、91手机商城、360应用平台、豌豆荚、安卓市场、小米、魅族商店、oppo手机、联想乐商、中兴汇天地、华为、安...

SuShine
2017/10/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

arcgis jsapi接口入门系列:总览

开发环境: arcgis jsapi版本4.9 由于我们这套代码是基于vue,webpack开发的,会有少数vue代码,但总体不影响 里面还有些我们公司的js库和html css,给出的代码不能百分百直接运行,主要还是...

canneljls
1分钟前
0
0
月薪80k阿里架构师漫谈他是如何从一名小码农走到架构师的

01 刚当程序员时,我是属于那种勤勤恳恳类型的员工,工作态度用认真来形容不为过,每天我几乎是团队里最早到公司,又最晚下班的一个。而组员张工一般情况下都是准时上下班的,即使项目进度比...

Java填坑之路
3分钟前
0
0
oracle的resetlogs机制浅析

oracle的resetlogs机制浅析 alter database open resetlogs 这个命令我想大家都很熟悉了,那有没有想过这个resetlogs选项为什么要用?什么时候用? 它的原理机制是什么?他都起哪些作用? 我...

突突突酱
5分钟前
0
0
JAVA 获取两个日期间的所有日期

public static List<String> getDates(String startDate, String endDate){    Date d1 = new SimpleDateFormat("yyyyMMdd").parse(startDate);//定义起始日期    Date d2 = new Simple......

尘叙缘
11分钟前
0
0
Innodb中的事务隔离级别和锁的关系

#一次封锁or两段锁? 因为有大量的并发访问,为了预防死锁,一般应用中推荐使用一次封锁法,就是在方法的开始阶段,已经预先知道会用到哪些数据,然后全部锁住,在方法运行之后,再全部解锁。...

Skqing
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部