昨天,由于开发需要,反编译一个apk。出现了
brut.androlib.err.UndefinedResObject: resource spec:
02. 0x010300dd 错误提示。
百度一下,
发现一篇文章
http://www.cnblogs.com/lxshanye/p/4031303.html
是这么说的:
根据提示描述是找不到资源文件,应该是要反编译的APK文件用到了系统的一些资源。
解决办法:
从手机中导出framework-res.apk文件,该文件是/system/framework下面,把这个文件拷到跟apkTool同一个目录下,执行以下语句把资源文件加进来:
apktool if framework-res.apk
执行完以后就可以把framework-res.apk导进来。此时再执行apktool d即可以正常反编译了。
然后,我果断把手机(华为荣耀6)接上usb线,打开360手机助手
在系统目录里面找到framework-res.apk,拷贝到电脑执行apktool if framework-res.apk
很不幸出现错误:
Exception in thread "main" brut.androlib.AndrolibException: Multiple resources:
spec=0x01040308 string/lockscreen_carrier_default, config=[DEFAULT]
at brut.androlib.res.data.ResType.addResource(ResType.java:66)
at brut.androlib.res.data.ResType.addResource(ResType.java:55)
at brut.androlib.res.decoder.ARSCDecoder.readEntry(ARSCDecoder.java:252)
又百度N次,有人说是apktool版本低了,用了apktool2.0.3也不行
百思不得其解,不得已,那了另外一台联想手机,拷贝了里面的
framework-res.apk,执行,这次" apktool if framework-res.apk
" 可以成功执行,但是
反编译还是失败。
I: Using Apktool 2.0.3 on 5.0.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:\Users\Administrator\apktool\framework\1.
apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec:
0x01010462
at brut.androlib.res.data.ResPackage.getResSpec(ResPackage.java:59)
变成了提示:brut.androlib.err.UndefinedResObject
我日的。什么鬼。
又百度N次。
有人说要删除C:\Users\Administrator\apktool\framework里面的文件
果断删除。
居然成功了。