在 Android(安卓)字符串资源中直接使用 Emoji
16lz
2021-01-24
问题描述
某些情况下,类似的在 string.xml 中定义这样的带 emoji 表情的字符串可以使得提示更加的生动和形象
Hot
直接打包运行在高版本的 Android 上,例如 7.0 应该是没有问题的,但如果在需要兼容 4.0 那么还需要多几步操作,否则 crash
- 启用 utf-16 编码
android { aaptOptions { additionalParameters '--utf16' }}
- 如果你使用的 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
更多相关文章
- Android官方技术文档翻译——Gradle 插件用户指南(5)
- Android(安卓)Studio 使用Gradle编译 如何导入so包
- 为NetBeans添加Andriod平台
- Android(安卓)OTA升级包制作脚本详解(四,生成升级脚本updater-scri
- Android中ADT插件的安装
- Android关于分包方案、插件化动态加载APK或DEX 以及热补丁资料总
- 安装Android的Eclipse插件ADT遇到错误“requires 'org.eclipse.g
- Android(安卓)Donut Makefile分析 (build/envsetup.sh)
- import小伙伴项目后 关于修改gradle插件版本的问题