平時(shí)使用的jdk都是Android studio默認(rèn)的几缭,也沒怎么去注意。昨天同事問我對Java8了解不构诚,趁今天有時(shí)間去學(xué)習(xí)了下贵少。
這里主要講在配置jdk1.8時(shí)遇到的問題呵俏,是在是想吐槽,坑滔灶。普碎。。
首先录平,你的項(xiàng)目依賴的jdk要是jdk1.8的麻车, 可以在
來配置。
然后在moudle的build.gradle中添加
android{
defaultConfig {
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
這樣你就能使用jdk1.8中的新特性了斗这!但是动猬,但是!表箭!
當(dāng)我在對textView設(shè)置內(nèi)容的時(shí)候 tvHello.setText("這是中文");
悲劇發(fā)生了赁咙,是的,中文亂碼了...
先以為導(dǎo)入配置之后編碼格式出錯(cuò),默默的檢查了設(shè)置序目,沒錯(cuò)啊,全是UTF-8的啊伯襟。再向同事問了他那天有沒有這個(gè)問題猿涨,他說沒,然后就在那蛋疼了半天...后來看見有另一種導(dǎo)入的方法也能使用Lambda姆怪,比較了下發(fā)現(xiàn)沒有啟用Jack叛赚,我屮艸芔茻,默默的百度了Jack導(dǎo)致中文亂碼稽揭,果然有俺附,香菇,藍(lán)瘦...吐槽完溪掀,爽多了 = =
以下是解決辦法
恩事镣,重新編譯,好了揪胃。璃哟。。
原因是:
查詢后發(fā)現(xiàn)這是Jack編譯器的一個(gè)bug喊递,Jack使用的是操作系統(tǒng)的默認(rèn)編碼随闪,UTF-8編碼的文件經(jīng)過編譯后,其中的非ASCII字符就會變成亂碼骚勘。
百度到的博客: http://blog.csdn.net/ljh102/article/details/52916019