Android 解决引入的三方库中类名冲突问题
参考:
Android开发——如何解决三方库中的类名冲突问题_android 类冲突-CSDN博客
Android 解决 jar/aar 包类名冲突 - 简书
实操步骤
1.提前安装好unzip-5.51-bin,proguard-7.4.0,jarjar-1.4软件
2.解压包名冲突的 AAR 文件
进入到需要修改包名的aar(此例为itrustekyclibrary.aar)存放的目录,执行解压命令:
unzip itrustekyclibrary.aar -d tempFolder
3.将tempFolder文件夹中的classes.jar放到 E:\jar-tool\目录下
注意与下述混淆规则文件convert.txt中的-injars path中指定的path一致即可
4.创建混淆打包规则文件 convert.txt
-injars 'E:\jar-tool\classes.jar'
-outjars 'E:\jar-tool\classes-out.jar'-dontskipnonpubliclibraryclassmembers
-dontshrink
-dontoptimize
-dontusemixedcaseclassnames
# 在这里指定要转换成的包名
-repackageclasses a.a
-dontpreverify
-dontnote
-dontwarn
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod# 需要注意观察原始 jar 包中哪些是没有混淆的,需要保留
-keep class jp.co.cybertrust.itrust.identification.** {*;}
-keep class b.** {*;}
-keep class c.** {*;}
-keep class d.** {*;}
-keep class e.** {*;}
-keep class f.** {*;}
-keep class g.** {*;}
-keep class h.** {*;}
-keep class i.** {*;}
# 因为我们的目的只是替换外层包名,类内部的一些东西都不用管
-keepclassmembers class ** {*;}
5.执行命令生成新的classes.jar
进入对应的文件目录:E:\proguard-7.4.0\proguard-7.4.0\bin,执行重打包命令:
proguard.bat @E:\jar-tool\convert.txt
6.替换原始的classess.jar
将新生成的classes-out.jar替换tempFolder中的classes.jar
7.重新打包aar, 命令如下(注意空格后有一个点)
jar cvf newAAR.aar -C tempFolder/ .
相关文章:
Android 解决引入的三方库中类名冲突问题
参考: Android开发——如何解决三方库中的类名冲突问题_android 类冲突-CSDN博客 Android 解决 jar/aar 包类名冲突 - 简书 实操步骤 1.提前安装好unzip-5.51-bin,proguard-7.4.0,jarjar-1.4软件 2.解压包名冲突的 AAR 文件 进入到需要修…...
扩展学习|大数据分析的现状和分类
文献来源:[1] Mohamed A , Najafabadi M K , Wah Y B ,et al.The state of the art and taxonomy of big data analytics: view from new big data framework[J].Artificial Intelligence Review: An International Science and Engineering Journal, 2020(2):53. 下…...
java学习笔记-初级
完整笔记下载链接:https://download.csdn.net/download/qq_48257021/88800766?spm1001.2014.3001.5503 一、变量 1.双标签 <!-- 外部js script 双标签 --><script srcmy.js></script> 在新文件my.js里面写: 2.字符串定义ÿ…...
使用axios 封装大文件上传,支持断点续传的功能
使用 Axios 实现断点续传、重试、暂停、开始和上传进度功能 简介 在许多应用程序中,我们经常需要上传大文件。但是,由于网络连接不稳定或其他原因,上传过程可能会中断。为了解决这个问题,我们可以使用断点续传功能。断点续传允许…...
在python中,设置json支持中文字符串
# 省略以上环节 ... # 假设json格式如下 system_info_dict {uptime: uptime.split(".")[0],cpu_usage: cpu_usage,memory_usage: memory_usage,disk_usage: disk_usage,battery_percentage: battery_percentage,battery_status: batteryStatus }# 设置json支持中文字…...
qnx du统计目录大小单位
在qnx上使用du命令统计目录大小时,发现统计数值与实际大小不一样。 比如目录下有个已知1gb大小的问题,但du统计出来的值跟1gb差太多了 # ls -al total 2097169 drwxrwxrwx 2 root root 4096 Jan 01 00:21 . drwxrwxrwx 6 root …...
测试人员如何向开发人员准确清晰地描述问题?
测试人员向开发人员准确清晰地描述问题可以采取以下方法: 提供详细的背景和上下文信息:描述问题发生的环境、前提条件和操作步骤,让开发人员能够了解问题出现的场景。明确问题的症状和表现:清楚地说明问题的具体表现,…...
何恺明新作 l-DAE:解构扩散模型
何恺明新作 l-DAE:解构扩散模型 提出背景扩散模型步骤如何在不影响数据表征能力的同时简化模型?如何进一步推动模型向经典DAE靠拢?如何去除对生成任务设计的DDM中不适用于自监督学习的部分?如何改进DDM以专注于清晰图像表示的学习…...
【数学建模获奖经验】2023第八届数维杯数学建模:华中科技大学本科组创新奖获奖分享
2024年第九届数维杯大学生数学建模挑战赛将于:2024年5月10日08:00-5月13日09:00举行,近期同学们都开始陆续进入了备赛阶段,今天我们就一起来看看上一届优秀的创新奖选手都有什么获奖感言吧~希望能帮到更多热爱数学建模的同学。据说点赞的大佬…...
Kubernetes(k8s第二部分)
资源清单相当于剧本 什么是资源: k8s中所有的内容都抽象为资源,资源实例化后,叫做对象。 1.K8S中的资源 集群资源分类 名称空间级别: kubeadm k8s kube-system kubectl get pod -n default 工作负载型资源,&a…...
mac新环境
1、maven 设置阿里云镜像 打开Maven的settings.xml文件。找到<mirrors>标签,如果没有,可以手动添加。在<mirrors>标签内部添加以下内容: <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorO…...
神经网络基础知识:LeNet的搭建-训练-预测
1.参考视频: 2.1 pytorch官方demo(Lenet)_哔哩哔哩_bilibili 2.总结: (1)LeNet网络就是 我最开始用来预测mnist数据集的那个网络,简单的2个conv2个maxpool3个linear层 (2)up主整理的train.py…...
SpringMVC 学习(七)之报文信息转换器 HttpMessageConverter
目录 1 HttpMessageConverter 介绍 2 RequestBody 注解 3 ResponseBody 注解 4 RequestEntity 5 ResponseEntity 6 RestController 注解 1 HttpMessageConverter 介绍 HttpMessageConverter 报文信息转换器,将请求报文(如JSON、XML、HTML等&#x…...
浅谈密码学
文章目录 每日一句正能量前言什么是密码学对称加密简述加密语法Kerckhoffs原则常用的加密算法现代密码学的原则威胁模型(按强度增加的顺序) 密码学的应用领域后记 每日一句正能量 人生在世,谁也不能做到让任何人都喜欢,所以没必要…...
Android 混淆是啥玩意儿?
什么是混淆 Android混淆,是伴随着Android系统的流行而产生的一种Android APP保护技术,用于保护APP不被破解和逆向分析。简单的说,就是将原本正常的项目文件,对其类、方法、字段,重新命名a,b,c…之类的字母,…...
【嵌入式——QT】QListWidget
QListWidget类提供了一个基于项的列表小部件,QListWidgetItem是列表中的项,该篇文章中涉及到的功能有添加列表项,插入列表项,删除列表项,清空列表,向上移动列表项,向下移动列表项。 常用API a…...
爬虫入门到精通_基础篇5(PyQuery库_PyQuery说明,初始化,基本CSS选择器,查找元素,遍历,获取信息,DOM操作)
1 PyQuery说明: PyQuery是python中一个强大而又灵活的网页解析库,如果你觉得正则写起来太麻烦,又觉得BeautifulSoup语法太难记,如果你熟悉jQuery的语法那么,PyQuery就是你绝佳的选择。 安装 pip3 install pyquery2 …...
用冒泡排序模拟C语言中的内置快排函数qsort!
目录 编辑 1.回调函数的介绍 2. 回调函数实现转移表 3. 冒泡排序的实现 4. qsort的介绍和使用 5. qsort的模拟实现 6. 完结散花 悟已往之不谏,知来者犹可追 创作不易,宝子们!如果这篇文章对你们有帮助的话,别忘了给个免…...
智慧公厕:打造智慧城市环境卫生新标杆
随着科技的不断发展和城市化进程的加速推进,智慧城市建设已经成为各地政府和企业关注的焦点。而作为智慧城市环境卫生管理的基础设施,智慧公厕的建设和发展也备受重视,被誉为智慧城市的新标杆。本文以智慧公厕源头厂家广州中期科技有限公司&a…...
【学习版】Microsoft Office 2021安装破解教程
本文转载自知乎:https://zhuanlan.zhihu.com/p/655653158 由本人二次整理修改 用到的软件为:Office Tool Plus,下载链接:Office Tool Plus 官方网站 - 一键部署 Office (landian.vip) 下载页面:(随机找个站…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
