Android之aar包中R文件混淆问题

2023-11-07

发现问题

解决问题要对症下药,先看报错日志:

    java.lang.NoSuchFieldError: No static field a of type I in class Lcom/**/**/**/R$layout; or its superclasses (declaration of 'com.**.**.R$layout' appears in /data/app/com.**.**-llnGcHCQ3Er78p3bU2UPnQ==/base.apk)

No static field a,这个field来自于我编译的AAR包,这是什么原因导致的呢?

咋一看怎么会找不到布局的id,难道是哪个support库的版本跟主项目冲突了吗?验证了一下,还是报错。

咋回事呢?细心观察一下,这个field a,看起来像是混淆过的,难道是R文件中的属性被混淆了,导致找不到对应id了?正好报错的是release版本AAR包,于是又用debug版本的AAR包验证了下,没有问题。
于是问题原因基本确定了,应该是混淆导致。

# 对于R(资源)类中的静态属性不能被混淆
-keepclassmembers class **.R$* {
 public static <fields>;
}

重新构建release版本的aar包,并在主工程中应用,一切OK!


作者:Code-Dreamer 
来源:CSDN 
原文:https://blog.csdn.net/qinhai1989/article/details/87865903 
版权声明:本文为博主原创文章,转载请附上博文链接!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android之aar包中R文件混淆问题 的相关文章

  • BandZIP无广告版(v6.25)安装及禁止联网设置

    安装和设置 1 下载和安装 bandzip版本v6 25以前的都是免费且无广告的 我们从网上找到6 25版本的进行下载安装 双击 如下图进行设置 点击同意并安装 安装过程中取消自动更新 其他设置默认 安装完成后 虽然不会自动更新 但每次使用
  • C# EasyModbus xktComm Modbus 例子

    转载请注明出处 联系我 田工 15118249062 微信同号 当然先要在NuGet按照相应的dll 不是ModbusRTU报文 在RTU报文前面加了4个字节 transactionIdentifier protocolIdentifier
  • 什么是Scrum?Scrum的核心要点和精髓

    有点长 期望你能通过本文彻底了解 Scrum 我们介绍了一个非常有意思且高效的组织模式 特性团队 我们首先介绍了为什么需要特性团队 特性团队的定义 核心价值 优势 可能存在的问题以及带来的成本 接着讲述了特性团队的适用范围 开发新产品 拓展
  • alertdialog 自定义样式回调选手_把 Node.js 中的回调转换为 Promise

    每日前端夜话 第431篇 正文共 2300 字 预计阅读时间 7 分钟 介绍 在几年前 回调是 JavaScript 中实现执行异步代码的唯一方法 回调本身几乎没有什么问题 最值得注意的是 回调地狱 在 ES6 中引入了 Promise 作
  • C++中的单例模式

    单例模式也称为单件模式 单子模式 可能是使用最广泛的设计模式 其意图是保证一个类仅有一个实例 并提供一个访问它的全局访问点 该实例被所有程序模块共享 有很多地方需要这样的功能模块 如系统的日志输出 GUI应用必须是单鼠标 MODEM的联接需
  • socket选项 SO_REUSEPORT

    摘要 多核与网络IO 目录 前言 本篇用于记录学习SO REUSEPORT的笔记和心得 末尾还会提供一个bindp小工具也能为已有的程序享受这个新的特性 当前Linux网络应用程序问题 运行在Linux系统上网络应用程序 为了利用多核的优势
  • Python毕设-【基于Flask的人脸考勤系统】附源码课件_Python练手项目_JPython毕业设计

    Python毕设 基于Flask的人脸考勤系统 release 附源码课件 允许白嫖 文章目录 系统简介 一 技术框架 二 功能 三 开发工具 四 总结 五 视频演示 文末附获取方式 系统简介 基于Flask的人脸考勤系统是一种应用于公司和
  • 可视化散点图:基于R语言的碎石图

    可视化散点图 基于R语言的碎石图 在数据分析和可视化中 散点图是一种常用的工具 用于展示两个变量之间的关系 而碎石图是散点图的一种变体 能够更直观地显示数据的密度和分布情况 本文将介绍如何使用R语言创建碎石图 并通过代码演示实现过程 首先
  • 如何理解 Istio Ingress, 它与 API Gateway 有什么区别?东西流量?南北流量?

    文章目录 背景 k8s的内部服务如何被外部访问 东西流量 南北流量 流量管理的比较 Ingress API Gateway Istio 参考 背景 这三者都和流量治理密切相关 那么流量治理在过去和现在有什么区别呢 都是如何做的呢 在学习is
  • 【缓存算法】LRU 最近最少使用

    LRU是Least Recently Used 最近最少使用 LRU缓存就是使用这种原理实现 简单的说就是缓存一定量的数据 当超过设定的阈值时就把一些过期的数据删除掉 LRU思想 固定缓存大小 需要给缓存分配一个固定的大小 每次读取缓存都会
  • 记mount NFS遇到的一个问题(-o nolock)

    前两天 测试 过程中 测试机始终 mount 不上我们的 nfs 比如我使用命令 mount vt nfs share mnt share 开始是mount命令一直hang在那里 卡住了 另一种情况是 有类似如下的错误输出 portmap
  • C++ 实现自动产生LR1分析器的产生器

    C 实现自动产生LR1分析器的产生器 1 介绍 2 总体思路 2 1 拓广文法 2 2 计算First集合 2 3 计算每个闭包的项目集以及GO函数 2 4 计算分析表的动作函数ACTION和状态转换函数GOTO 2 5 对语句进行语法分析
  • MySQL数据库学习——DQL——条件查询

    create table emp id int comment 编号 workno varchar 10 comment 工号 name varchar 10 comment 姓名 gender char 1 comment 性别 age
  • QT Critical error detected c0000374

    在使用QT写GraphicsView时 运行程序添加Item时 无缘无故报错了 debug调试也是跳到QT源码上面去 还都不是报同一个位置的错误 有些还是new的位置报错 而报错信息是 Critical error detected c00
  • 多线程案例(单例模式、阻塞式队列、定时器及线程池)

    目录 一 单例模式 1 1 饿汉模式 1 2 懒汉模式 二 阻塞式队列 2 1 生产者消费者模型 2 2 标准库中的阻塞队列 2 3 阻塞队列实现 三 定时器 3 1 标准库中的定时器 3 2 实现定时器 四 线程池 4 1 标准库中的线程
  • office word 页码从任意页开始

    有时候在编写word文档的时候 页码会从封面就开始计算 想象一下如果你的论文封面突然蹦出一个页码 很难受有木有 解决这个问题很简单 网上教程很多 这里总结一下 1 找到你需要从零开始的页面 将这一页和上一页添加分节符 添加分节符1 添加分节
  • 游戏智能作业

    作业题目 P D 过河游戏智能帮助实现 程序具体要求 实现状态图的自动生成 讲解图数据在程序中的表示方法 利用算法实现下一步的计算 参考 P D 过河游戏智能帮助实现 我们先来分析一下这一次作业的要求 这一次的作业大致就是要对之前的牧师与魔
  • DVWA之sql盲注

    写在前面 当时刷sqli labs也浑浑噩噩没有做啥总结 现在就先从sql盲注总结开始吧 SQL Injection Blind SQL盲注与一般注入的区别在于 一般的注入攻击者可以直接从页面上看到注入语句的执行结果 而盲注时攻击者通常是无
  • GPU处理图像 Shader的入门

    from http www jianshu com p 8687a040eb48 字数2901 阅读316 评论0 喜欢3 Shader着色器 Shader出现在OpenGL ES 2 0中 允许创建自己的Shader 必须同时创建两个Sh
  • 【Windows】 chrome 如何下载网站在线预览PDF文件,保存到本地

    爱学习的小伙伴肯定遇到过那种只能在线看 但并不提供下载的的PDF文件 但有时候想保存到本地有很费劲 今天准备了一个很简单的方法 以这个在线pdf为例 在线PDF文件 该如何把这个PDF保存到本地呢 方法 1 以chrome浏览器为例 打开准

随机推荐

  • MATLAB 学习笔记(2)MATLAB 矩阵的加减乘除运算

    目录 MATLAB矩阵的加 减 乘 除法 MATLAB矩阵的加法 MATLAB矩阵的减法 MATLAB矩阵的除法 MATLAB矩阵的乘法 总结 MATLAB矩阵的加 减 乘 除法 MATLAB矩阵的加法 在MATLAB中建立一个脚本文件 代
  • 如何让html的按钮居中,如何让你的htmlbutton本身居中的实现

    这篇文章主要介绍了如何让你的html button本身居中的实现 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友们下面随着小编来一起学习学习吧 如何让你的html button本身居中呢 这个很好找思
  • 行业领先公司和软件系统

    QEMU是一套由法布里斯 贝拉 Fabrice Bellard 所编写的以GPL许可证分发源码的模拟处理器软件 在GNU Linux平台上使用广泛 QEMU编译后生成一个可执行文件 通过执行文件形成一个模拟器处理软件 该软件相当于一个操作系
  • C# LINQ分组求最大、最小、平均值

    C LINQ分组求最大 最小 平均值 private void GroupBy List
  • 使用Python保存`requests`请求的文件的代码

    使用Python保存requests请求的文件的代码 在Python中 你可以使用requests库发送HTTP请求 并且可以很方便地保存请求返回的文件 下面是一个示例代码 演示了如何使用requests库发送请求并保存文件 import
  • Webpack/Babel/⼯程化 笔试题精讲1

    核 概念 entry webpack 构建第 步 output 输出 loader 模块转换器 于将模块的原内容按照需求转换成新内容 plugin 扩展插件 在 webpack 构建过程的特定时机注 扩展逻辑 来改变或优化构建结果 mode
  • 【Java】NIO和BIO有什么区别?回答:天壤之别

    引流 第一时间阅读最新文章的方式 Java NIO和BIO有什么区别 答案 天壤之别 Java NIO不简单呐 Channel Buffer Selector 一 什么是NIO 1 概念 NIO是java1 4中引入的 被称为new I O
  • 一堆小技巧--常见写法的优化(持续更新。。)

    不用定义变量来交换两个数的值 int temp a a b b temp 可以替换成 a a b b a b a a b 详情见小技巧 使用异或来替换原本的常量交换 使用 gt gt 替换原来的 2取中点 int mid left righ
  • blender翻转渲染图

    想要实现如下功能 翻转生成的渲染图 在blender里设置物体属性的scale 翻转哪个轴就在哪个轴取反 翻转X轴的效果 翻转Y轴的效果
  • CSS定位知识点补充(父相子绝)

    定位 定位 定位模式 position 边偏移 top right bottom left 定位模式 用于指定一个元素在文档中的定位方式 边偏移则决定了该元素的最终位置 静态定位 position static 元素的默认定位方式 无定位的
  • C++ Most vexing parse(C++最头疼的解析)

    首先需要了解 在C 中 如下三种方式声明了同一个函数 int f double d 声明接受一个double参数d 返回值为int类型的函数 int f double d 效果一样 参数名外的括号会被忽略 int f double 直接省略
  • Spring框架中的缓存管理详解

    标题 Spring框架中的缓存管理详解 摘要 本文将介绍Spring框架中的缓存管理 探讨如何使用Spring提供的缓存注解和配置来提升应用的性能 通过详细说明缓存的概念 应用场景以及示例代码 帮助读者理解和使用Spring中的缓存管理 1
  • AI实战训练营(Class 11)MMEditing 安装与使用

    AI实战训练营 Class 11 MMEditing 安装与使用 安装配置 MMagic 安装 Pytorch 安装 MMCV 和 MMEngine 环境 安装 MMagic 从源码安装MMagic 检查安装成功 安装其它工具包 黑白照片上
  • argsort()函数

    argsort 函数是对数组中的元素进行从小到大排序 并返回相应序列元素的数组下标
  • Flink的Standalone集群部署

    在上篇进行单机的Standalone部署 Flink的Standalone部署实战 本篇介绍Flink的Standalone集群部署 Flink集群为主从架构 主是JobManager 从为TaskManager 支持一主多从 本次搭建环境
  • 代码源div1二分答案(前缀和+贪心+二分)

    include
  • live常见问题:如何降低Ableton Live Suite的CPU负载?

    Ableton Live 11 Suite for Mac是Mac平台上能够用于创建和录制音乐的音乐制作软件 软件本身就占用的很大的内存空间 如果下载的其插件和固件的话 会大大增加CPU的负荷 那么如何降低Ableton Live Suit
  • 【Go语言例题】迷宫的广度优先搜索

    Go语言例题 迷宫的广度优先搜索 用循环创建二维slice 使用slice来实现队列 用Fscanf读取文件 对Point的抽象 Fscanf在遇到 n才结束 遇到 r时就会把 r替换成0 这就有个问题 要注意自己的文本换行符是什么 在Wi
  • 使用Gitee去拉取项目和上传项目

    关于Gitee的使用是为了我们更的好去使用Git上传自己的代码 和托管项目也有助于团队的开发 也可以上传到Gitee官网去分享和开源自己的项目 这里我们就开始给大家介绍怎么去用IDEA去创建一个项目和配置我们的Gitee 1 用IDEA去创
  • Android之aar包中R文件混淆问题

    发现问题 解决问题要对症下药 先看报错日志 java lang NoSuchFieldError No static field a of type I in class Lcom R layout or its superclasses