解决 appt getting 'android:icon' attribute: attribu

很多应用平台上传APK后都用aapt工具来解析Android 的资源内容, 并获得图标。 但是aapt有个bug, 不能正常解析资源内容。 我今天在百度,豌豆荚,360 等大平台上上传自己的应用时遇到这个问题, 摸索了半天才找到真正的解决方案。

首先进入Android SDK里的tools文件夹下, 然后在cmd执行以下命令: 

aapt dump badging 您的apk路径.apk

执行完了会输出错误信息, 比如:

package: name='com.yourdomain.yourapp' versionCode='1' versionName='1'
sdkVersion:'8'
W/ResourceType(15821): Failure getting entry for 0x7f04001b (t=3 e=27) in package 0 (error -84)
application-label-en:'Your App Name'
application-icon-120:'res/drawable-ldpi/appicon.png'
application-icon-160:'res/drawable-mdpi/appicon.png'
application-icon-240:'res/drawable-hdpi/appicon.png'
application-icon-320:'res/drawable-xhdpi/appicon.png'
ERROR getting 'android:icon' attribute: attribute is not a string value

以上我们可以看到, 错误位置, 但是这里根本看不到具体在哪儿。t=3 e=27的 意思是, type为3, entity 为27的那个资源有问题,接下来我们执行另一个命令获取更详细的信息。

aapt dump resources 您的apk路径.apk
type 3 configCount=2 entryCount=28
  spec resource 0x7f040000 com.yourdomain.yourapp:string/Quiz_Type: flags=0x00000000
  spec resource 0x7f040001 com.yourdomain.yourapp:string/QUIZ_TYPES: flags=0x00000000
  ...
  Lines cut out for brevity
  ...
  spec resource 0x7f04001a com.yourdomain.yourapp:string/info: flags=0x00000000
  spec resource 0x7f04001b com.yourdomain.yourapp:string/app_name: flags=0x00000000
  config (default):
    resource 0x7f040000 com.yourdomain.yourapp:string/Quiz_Type: t=0x03 d=0x0000001c (s=0x0008 r=0x00)
    resource 0x7f040001 com.yourdomain.yourapp:string/QUIZ_TYPES: t=0x03 d=0x0000001d (s=0x0008 r=0x00)
    ...
    Lines cut out for brevity
    ...
    resource 0x7f04001a com.yourdomain.yourapp:string/info: t=0x03 d=0x0000001a (s=0x0008 r=0x00)
  config en:
    resource 0x7f04001b com.yourdomain.yourapp:string/app_name: t=0x03 d=0x00000030 (s=0x0008 r=0x00)

这样我们就可以寻找type为3, entity 为27的那个资源, 如果资源过多, cmd窗体看不全, 就用这个命令吧:

aapt dump resources 您的apk路径.apk > D:\elbiz.text

这样就可以把全部信息保存到D盘根目录下的elbiz.text文件里。

找到有问题的那个资源后, 该删除的就删除, 该修改的就修改。 good luck!

转载于:https://my.oschina.net/quttap/blog/596558

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值