平时使用的jdk都是Android studio默认的,也没怎么去注意。昨天同事问我对Java8了解不,趁今天有时间去学习了下。
这里主要讲在配置jdk1.8时遇到的问题,是在是想吐槽,坑。。。
首先,你的项目依赖的jdk要是jdk1.8的, 可以在
来配置。
然后在moudle的build.gradle中添加
android{
defaultConfig {
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
这样你就能使用jdk1.8中的新特性了!但是,但是!!
当我在对textView设置内容的时候 tvHello.setText("这是中文");
悲剧发生了,是的,中文乱码了...
先以为导入配置之后编码格式出错,默默的检查了设置,没错啊,全是UTF-8的啊。再向同事问了他那天有没有这个问题,他说没,然后就在那蛋疼了半天...后来看见有另一种导入的方法也能使用Lambda,比较了下发现没有启用Jack,我屮艸芔茻,默默的百度了Jack导致中文乱码,果然有,香菇,蓝瘦...吐槽完,爽多了 = =
以下是解决办法
恩,重新编译,好了。。。
原因是:
查询后发现这是Jack编译器的一个bug,Jack使用的是操作系统的默认编码,UTF-8编码的文件经过编译后,其中的非ASCII字符就会变成乱码。
百度到的博客: http://blog.csdn.net/ljh102/article/details/52916019