您的位置:首页 > 移动开发 > Android开发

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

2016-01-03 20:16 417 查看
很多应用平台上传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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: