为了防止代码被反编译,一般在签名导出前需要对代码进行混淆。最近发现自己的一个项目工程在代码混淆后,使用中出现了异常。以下是自己这几天在解决代码混淆以及引入第三方jar包导致混淆出现的问题处理的一些心得:
1.需要做混淆保护的内容:
(1.一般四大组件都会默认不被混淆
(2.自定义组件的类也要设置为不被混淆,否则找不到控件,例如:-keep public class rongqin.musicplayer.view.LrcView
-keep public class com.viewpagerindicator.TitlePageIndicator
-keep public class com.viewpagerindicator.LinePageIndicator
(3.被调用的第三方jar包的类等
2.找到混淆后编译异常问题所在的类
代码混淆后,类名就都被改变了。以下是自己摸索的一种比较笨的快速确认异常类的方法。
(1 首先根据异常信息,可以知道异常出现在 com.a.a.c.a这个文件夹里
这些类文件都在反编译后的classes.dex.dex2jar.jar文件里。
</