本文主要是介绍Android问题以及解决方案-组件化开发混淆文件不起作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
组件化开发混淆文件不起作用?
明明在混淆文件里添加了各种第三方库的混淆配置,为什么在混淆开关打开时打正式包后会报错?这TM为什么呢?到底是为什么呢???
什么是组件化开发?
采用组件化开发的应用越来越多,稍微有点大的项目都会采用组件化。不禁问为什么呢?当然是有很多优点,不然不会那么多人那么多公司会采用这种方案。
到底有什么优点?召唤传送门!!!---》》》 “终于懂了” 系列:Android组件化,全面掌握!
那混淆是个什么?
作为开发者,写好的业务代码打包上线后,不会希望有人反编译之后看到本来要保密的但是是裸奔的代码吧。
混淆:把代码变成无规律无明显标识的超级难读的代码。
因为一些三方库,sdk或者业务需求,某些代码不需要混淆,这时候需要混淆文件来写一些不需要混淆的规则代码。
混淆有什么规则?再次召唤传送门!!!---》》》 Android代码混淆&组件化混淆方案
我遇到的问题是什么?
最近项目要第一次上线,在经过很长时间的开发之后,要开始准备发布上线了,这时候开始做准备工作,其中打release包是必要的节点之一。
有同事打正式包之后,安装打开后各种报错,无法正常运行。这就是问题,为什么debug包可以正常运行测试,release包不行呢?
我们组件化采用的是ARouter路由管理,文档上写明混淆规则,将混淆代码放入proguard-rules.pro文件中。
一切准备就绪。打包安装!当我激动的打开我们的app时,在闪屏页不动了~~ debug包为什么没事儿,
通过跟踪调试发现ARouter的navigation的回调事件中onLost调用了,路由找不到???
为什么?混淆也添加了啊,debug包没问题啊,为什么release就不行!
其实不仅仅ARouter出问题,项目中其他组件中的三方库的初始化等都有问题。这就需要好好反思一下了。
难道是混淆不起作用?可是明明将混淆规则添加到proguard-rules.pro文件中了啊。proguard-rules.pro?不对不对。没有组件化开发时候我们都会放到这个文件中,组件化开始时候不行了吗???
确实不行了。看看这个Android代码混淆&组件化混淆方案就知道为什么不行了。
问题记录~~
如果感觉文章可以学到东西,欢迎大佬关注小弟的公众号:Android 翻山之路
![Android 翻山之路公众号图片.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a1b3b680585547049d186c433aad38d8~tplv-k3u1fbpfcp-watermark.image)
这篇关于Android问题以及解决方案-组件化开发混淆文件不起作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!