第一种问题:
使用命令
apktool b -f test test_unsign.apk
编译通过,但是装上手机后(前提,先签名),android的图片文件 发生黑条,后来调试源代码发现时一个listview的背景图片
图片格式为 .9.png图片。原因是.9图片没有编译 把.9.png写成了 .9.PNG 。
eclipse编译器可以对改文件检查通过,但是 apktool命令无法 回编译。
住:如何签名参见另外一篇文章
http://blog.csdn.net/woaitaoyi/article/details/24976675
第二种情况:
使用命令
apktool b -f test test_unsign.apk
提示
error: Public symbol drawable declared here is not defined.
翻遍网络所有的资源没有找到解决方法。
后来找到了原因
----------------------------------------------------华丽丽的分割线--------------------------------------------------------------------------------------
多数情况下我们修改完后使用“apktool b xxx”命令并不能保证可以顺利地回编译。
常见的错误是.../res/values/public.xml:数字 error: Public symbol.../xxxx declared here is not defined
这跳debug信息告诉我们/res/values/public.xml文件中第“数字”行出错,里面指定的对象在res目录下不存在。
这是精简或图片资源引用错误引起的,比如某张图片在其他dpi里定义了,在当前保留的dpi里却用不到,当我们把它删除
后,并没有删除它在public.xml文件中的定义,程序回编译的时候按照public.xml去找它却已经找不到了,于是就报错了。
解决的方法就是打开public.xml文件,删除相应的行,这个地方需要比较细心和有耐心。
常见的错误是.../res/values/public.xml:数字 error: Public symbol.../xxxx declared here is not defined
这跳debug信息告诉我们/res/values/public.xml文件中第“数字”行出错,里面指定的对象在res目录下不存在。
这是精简或图片资源引用错误引起的,比如某张图片在其他dpi里定义了,在当前保留的dpi里却用不到,当我们把它删除
后,并没有删除它在public.xml文件中的定义,程序回编译的时候按照public.xml去找它却已经找不到了,于是就报错了。
解决的方法就是打开public.xml文件,删除相应的行,这个地方需要比较细心和有耐心。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
此上解决方法是一些美化apk的童鞋们也会遇到的问题~~~
由此可见很多的反编译工具 基本都是封装了 apktool,aapt,apktool.jar 吧