1. 程式人生 > >Android jdk1.8的使用配置並解決android jack編譯亂碼

Android jdk1.8的使用配置並解決android jack編譯亂碼

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

這裡寫圖片描述

這裡寫圖片描述