aapt dump badging 找不到'android:versionCode' Bug解决
16lz
2021-01-26
今天服务器端同事报了个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
命令的另外几个参数后终于有了解决方法,步骤如下:
- 使用命令
aapt dump xmltree ***.apk AndroidManifest.xml
先解析AndroidManifest文件,得到versionCode的引用值地址@0x7f0d009
- 使用命令
aapt dump resources ***.apk
得到所有resourcees信息,搜索上面的引用地址@0x7f0d009
,得到
,这个d就是真实的versionCode值了。
更多相关文章
- android的json解析-详解
- 【Android】Gradle自动化构建工具的用法
- android adb与sdcard
- android+eclipse+phonegap1.7(cordova)配置项目 .
- (转载) Android(安卓)RecyclerView 使用完全解析 体验艺术般的控件
- Android(安卓)Wear 报错:cannot connect to localhost:4444: 由于
- android 解析JSON
- Android(安卓)NDK: Host 'awk' tool is outdated. Please define
- Android(安卓)webView 中loadData方法加载 带中文时出现乱码