Android jdk1.8的使用配置並解決android jack編譯亂碼
阿新 • • 發佈:2019-01-03
一、Android jdk1.8的使用配置。
1、首先,當前jdk必須在1.8以上,才可以使用,具體如何設定,可以右擊當前專案,選擇Open Module Settings,並在彈出的介面點選 SDK Location,並在下面的Use embedded JDK(recommnded)選擇jdk。
操作圖如下
2、對當前專案進行配置。
2.1、對於配置jdk1.8,其實有兩種方法,第一種通過配置gradle指令碼,第二種通過開啟專案結構結構jinx配置,個人比較喜歡第二種,因為比較方便,只要進行設定就可以達到預期效果。
第一種:配置gradle指令碼,在build.gradle指令碼中新增下列程式碼:
android {
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
也可以這樣配置,效果是一樣的。
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
第二種:設定專案結構
按快捷鍵Ctrl+Shift+Alt+S進入專案結構設定,把app的jdk版本修改成1.8,注意你需要填寫1.8,因為那個下拉選單裡沒有這一選項,如下:
2.2、上面配置完,對build.gradle(Module.app)中進行配置,在defaultConfig中新增下面jackOptions程式碼塊。
android{
defaultConfig {
jackOptions {
enabled true
}
}
配置到這一步,jdk1.8的基本配置就完成了,是不是很簡單。本以為高高興興的以為這樣就好,當我執行專案的時候出現中文亂碼,在模擬器上或者在真機上,都是亂碼,這個問題困擾了我整整一天,還好google引擎是強大的,接下來就對jdk1.8配置進行填坑。
二、Jack編譯器編碼設定。
當時我還不知道是Jack編譯器編碼的問題,點選setting,查看了android studio中的編碼設定,發現我都設定了UTF-8,那是什麼原因導致中文亂碼??
google引擎幫助下,發現這是Jack編譯器的一個bug,Jack使用的是作業系統的預設編碼,UTF-8編碼的檔案經過編譯後,其中的非ASCII字元就會變成亂碼,既然問題已經明確,那如何設定??
在當前專案下gradle.properties檔案中新增進行修改。
修改前:
org.gradle.jvmargs=-Xmx1536m
修改後:
org.gradle.jvmargs=-Dfile.encoding=UTF-8