在 Android 字符串資源中直接使用 Emoji

問題描述

某些情況下,類似的在 string.xml 中定義這樣的帶 emoji 表情的字符串可以使得提示更加的生動和形象

<string name="hot">??Hot</string>

直接打包運行在高版本的 Android 上,例如 7.0 應該是沒有問題的,但如果在需要兼容 4.0 那么還需要多幾步操作,否則 crash

  1. 啟用 utf-16 編碼
android {
    aaptOptions {
        additionalParameters '--utf16'
    }
}
  1. 如果你使用的 Android Gradle 編譯插件是 3.0.0 以上,那么會默認啟用 Appt2 來打包資源,Appt2 不支持 utf16 編碼的,所以在編譯的時候會出錯,所以需要在 gradle.properties 禁用 Appt2
android.enableAapt2=false

以上,就可以在 4.0 以上直接使用 emoji 表情了

潛在問題

Android Gradle 編譯插件在 3.2 的時候移除了 Appt1,所以暫時不能把編譯腳本版本升級到 3.2,也不知道 Google 會不會修復這個問題,不過也沒什么關系的,即使以后不支持而你又需要新的編譯腳本,把 emoji 去掉就可以

參考

App Crash when minSdk==9 and string resource includes an emoji

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容