关于android5.1 strings product值引起的复写字串不起效问题的解决方法

本文探讨了在Android中如何正确地使用overlay机制来修改特定的字符串资源。当尝试覆盖默认资源时,若未按预期生效,可通过指定特定的product特性使修改生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决android strings product值引起的复写字串不起效问题
【问题描述】
android/packages/apps/Settings/res/values/strings.xml里面有字串

<string name="sd_format_summary" product="default">Erases all data on the SD card, such as music and photos</string>

现通过overlay文件夹(DEVICE_PACKAGE_OVERLAYS)下的“同路径”文件
android/device/xxx/overlay/packages/apps/Settings/res/values/strings.xml
修改上述字串,

<string name="sd_format_summary" product="default">Erases2 all data on the SD card, such as music and photos</string>

重新构建Settings.apk,push进机器,未起作用。

【分析】
两个文件的product属性值均为default,系统未用overlay下的同名字串进行替换,未进行替换的原因需要深入分析android编译系统;项目中有以下配置:
PRODUCT_CHARACTERISTICS := tablet
即,如果存在product为tablet的资源,则选择之,否则选择default,故,将overlay下的字串按以下编写后,即可生效。

<string name="sd_format_summary" product="tablet">Erases2 all data on the SD card, such as music and photos</string>

或者

<string name="sd_format_summary">Erases2 all data on the SD card, such as music and photos</string>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值