Android问题以及解决方案-组件化开发混淆文件不起作用

2024-08-21 02:32

本文主要是介绍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问题以及解决方案-组件化开发混淆文件不起作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091863

相关文章

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring