最近工作业余时间一直在自学Android,Google I/O 2017 惊闻Kotlin成为Google支持的官方语言,当然得紧跟“中央”的脚步,开始程序入门必备之HelloWord,殊不知这个HelloWord充满了曲折。
了解Kotlin
知道了Kotlin之后就开始在网上搜集相关资料,发现了如下个人觉得比较好的资料:
Getting started with Android and Kotlin
kotlin项目
kotlin配置及与java的互操作
kotlin语法练习
Kotlin1.1手册
kotlin中文网
kotlin官网
中文kotlin项目
曲折之路
安装插件+HelloWorld
自己一直是使用的Android Studio的稳定版,通过File->setting->Install JetBrains Plugins安装了Kotlin插件。安装完成后会发现Tools->Kotlin工具,可以进行相关Kotlin操作。
插件装好后,新建HelloWord项目,新建完成后打开MainActivity.java,然后通过Code->Convert Java File to Kotlin File或者Ctrl+Alt+Shift+K将其转换为kt文件,Android Studio将自动在build.gradle文件添加依赖,如下:
1 | ext.kotlin_version = '1.1.2-4' |
本以为马上就是见证奇迹的时刻了,可惜各种错误纷至沓来,主要就集中在Android Studio不能成功自动下载kotlin的相关依赖,翻墙下载也不能成功,所以就通过错误log和Task手动下载相关包,这样解决了大部分问题,但是仍然不能成功编译。
Android Studio 3.0
折腾良久不能成功, 就决定下载Google新发布的自带Kotlin的3.0。下载安装完成后,导入HellowWorld项目,又出现了一大堆翻墙不能解决的gradle和kotlin依赖下载问题,所以又通过手动下载的方式解决了问题。3.0自动对项目的一些依赖进行了更新,kotlin更新为如下:
1 | ext.kotlin_version = '1.1.3-eap-34' |
自带Kotlin的IDE,新建项目的时候就能选择kotin或者java
本以为终于可以开心的见证奇迹了,3.0 和我的Ubuntu16.1又出现了兼容性问题,由于之前不小心把系统升级后已经多次遇到和软件不够兼容的问题,所以这次就放弃继续折腾,就准备再切换回Android Studio2.3.2再试试,实在不行就只有备份重装系统了。
血的教训:Linux开发机千万要用之前的稳定版本,不要升级到最新系统。
终见证奇迹
Android3.0+ubuntu16.01 不成功,最终用回2.3.2+kotlin插件,老天总算没让继续折腾,通过3.0更新了Kotlin版本后,在2.3.2中一下就编译过了,赶紧如下添加一点代码:
1 | class KotlinActivity : AppCompatActivity() { |
编译下载,终于在手机里面看到了:Hello,Kotlin!。
不过仍然有一个小瑕疵,由于兼容性有些问题,总会有IDE Error和Plugin Error提示,不过就这样子将就用了,不准备耗掉大量时间来折腾系统了,相信随着Google的更新和系统补丁,这些问题终将解决。
Anko项目
尝试了一下比较火的开源项目Anko,通过Anko实现HelloWord。
引入依赖,我这里选择了自己能用到的部分依赖,如下:
1 | ext.anko_version = "0.10" |
实现代码:
1 | # 常规用法 |
Kotlin学习项目
附上一点经验
依赖包总是下载失败时,通过log和Task确定链接,手动下载然后放到相应路径。
1
2
3
4
5
6
7
8# 依赖包路徑,可以通过ExternalLibraries-><PackegName>->Library Properties查看
/home/lee/.gradle/caches/modules-2/files-2.1
# gradle路徑
/home/lee/.gradle/wrapper/dists
# gradle下载路径
http://services.gradle.org/distributions/图形界面查看和添加依赖
1 | # 查看 |
看log耐心一些,做一些分析尝试,再加上Google会找到原因的。