记解决一次drawable资源找不到的问题

1 通读aapt源码和AssetManager源码

2 gdb调试

3 找不到的资源为drawable/sns_default.xml 匹配到的config为drawable,但是drawable里面并没有该资源,索引到的字符串常亮池的index为1,对应字符串为"" 空串

#aapt dump strings com.tencent.qt.qtl.apk | grep “#1:”
String #1:

4 反编译查看sns_default.png所在目录

drawable-nohdpi-v4

drawable-xhdpi-v4

这里在drawable文件夹下并没有该资源

5 再次使用aapt查看是否为资源查找过程中系统存在bug

#aapt dump resources com.tencent.qt.qtl.apk | grep sns_default
spec resource 0x7f02089d com.tencent.qt.qtl:drawable/sns_default: flags=0x00000500
resource 0x7f02089d com.tencent.qt.qtl:drawable/sns_default: t=0x03 d=0x000010ea (s=0x0008 r=0x00)
resource 0x7f02089d com.tencent.qt.qtl:drawable/sns_default: t=0x03 d=0x00000001 (s=0x0008 r=0x00)
resource 0x7f02089d com.tencent.qt.qtl:drawable/sns_default: t=0x03 d=0x00000b7c (s=0x0008 r=0x00)

确实存在在default配置下的资源 resource 0x7f02089d com.tencent.qt.qtl:drawable/sns_default: t=0x03 d=0x00000001 (s=0x0008 r=0x00) 什么鬼子

6 再次搜索

#find . -type f | xargs grep sns_default

./res/values/drawables.xml:    <item type="drawable" name="sns_default" />

这次发现在values下有配置一个type为drawable类型的sns_default,就是它搞的鬼

7 回答疑问

为什么在其他手机上没有问题,在模拟器上有问题?
因为真机分辨率比较高,匹配到了drawable-xhdpi-v4下的资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值