系统应用切换语言资源问题
这几天遇到了切换语言后,原生应用不跟随系统语言切换对应资源的问题,困扰了很多天,也搜了很多帖子,直到今天才找到原因和解决办法。
问题排查
1.确认是否存在该语言资源;
2.确认locale是否能拿到当前系统的资源;
3.查看bp文件是否是二次修改过,比如resource_dirs是否被更改了;
上述项都确认没问题的情况下,查看系统的languages_default.mk文件是否已经包含当前所需资源。
/build/make/target/product/languages_default.mk
如果该mk文件确实也包含了所需资源,那么可以反编译语言切换失败的原生应用,查看resources包内是否存在该资源(目前我遇到的情况是不存在该资源)。
解决办法
找到系统目录下/device/厂商/平台/device.mk 文件(注:不一定是decice命名,具体可参考全编后的out/target/product/目录下生成的文件夹名字来确定该mk文件名称,这里以device.mk为例)。
打开device.mk文件,添加如下内容:
#配置中文资源
PRODUCT_LOCALES := en_US zh_CN (对应的资源缩写)
然后执行整编命令,整编结束后直接push对应的原生apk验证,即可。也可以反编译编译出来的apk查看resources资源。