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

相关文章

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo