今天服务器端同事报了个bug,在解析一个游戏apk包时,无法得到versioncode, 我自己用aapt dump badging 命令试了一下,确实是会报一个ERROR getting 'android:versionCode' attribute: attribute is not an integer value错误。

用反编译后也无法得到versionCode。太阳底下没有新鲜事,果断先google一发,stackoverflow上面果然有人问过这个问题,原来这个问题的原因是aapt的一个bug,当app的androidmanifest文件的versionCode使用的引用值(android:versionCode="@integer/versioncode")时,就会解析错误。

网友的回答都是修改versionCode的赋值方式,通过直接复制避免这个问题,可如果包已经打出来了怎么解决呢?

我在查看了aapt命令的另外几个参数后终于有了解决方法,步骤如下:

  1. 使用命令aapt dump xmltree ***.apk AndroidManifest.xml先解析AndroidManifest文件,得到versionCode的引用值地址@0x7f0d009
1.png
  1. 使用命令 aapt dump resources ***.apk得到所有resourcees信息,搜索上面的引用地址@0x7f0d009,得到
2.png

,这个d就是真实的versionCode值了。

更多相关文章

  1. android的json解析-详解
  2. 【Android】Gradle自动化构建工具的用法
  3. android adb与sdcard
  4. android+eclipse+phonegap1.7(cordova)配置项目 .
  5. (转载) Android(安卓)RecyclerView 使用完全解析 体验艺术般的控件
  6. Android(安卓)Wear 报错:cannot connect to localhost:4444: 由于
  7. android 解析JSON
  8. Android(安卓)NDK: Host 'awk' tool is outdated. Please define
  9. Android(安卓)webView 中loadData方法加载 带中文时出现乱码

随机推荐

  1. Android(安卓)Animation动画
  2. 用GDB调试Android中C/C++程序(命令行)
  3. 如何在android style文件中使用自定义属
  4. Android学习笔记之动画效果Animation
  5. Android中利用LinearLayout动态添加控件
  6. (二)Android系统基础-1 APP类型简介
  7. android M拨号盘开源之旅(二)--- 浅析拨号
  8. Android:GPS卫星定位
  9. Android中的Menu的简介(翻译自官方文档)
  10. “The project cannot be built until bu