从 AGP 4.1.2 到 7.5.1——XmlParser、GPathResult、QName 过时

news2025/1/17 8:52:39

在这里插入图片描述

新年首发,
去年的问题,今年解决~

问题 & 排查

1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':app:processCommonReleaseManifest'.
> org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 38; 
> 元素类型 "manifest" 必须后跟属性规范 ">""/>"

定位到了问题所在代码,且能成功复现,异常是在 XmlUtil.serialize 里面抛出。

//问题复现
def xmlpath = projectDir.getAbsolutePath() + File.separator + "testdata" + File.separator + "AndroidManifest.xml"
println("xmlpath: " + xmlpath)

def xmlNode = new XmlParser().parse(new File(xmlpath).getPath())
println("xml node: " + xmlNode)

println("xml serialize begin!")
def serialize = groovy.xml.XmlUtil.serialize(xmlNode)
println("xml serialize done!")

在这里插入图片描述

在这里插入图片描述

我们发现复现代码中 XmlParser是一个过时的,不仅如此整个groovy.util包下都是过时的类,其中一部分过时的类使用新包groovy.xml下的同名类代替。

在这里插入图片描述
果然,更换过时类的包名重新打包没有报错了。

解决

同类目更换导包路径即可。

//过时类
import groovy.util.XmlParser;
import groovy.util.slurpersupport.GPathResult
import groovy.xml.QName


//新类
import groovy.xml.XmlParser
import groovy.xml.slurpersupport.GPathResult
import groovy.namespace.QName

其他问题

assets 资源输出目录:从 merged_assets 变成 assets

检查你的代码,如果有对 assets 资源的操作,注意代码适配,且新版 assets 后面没有了out 子目录,比如我的代码就需要调整路径。

//调整常量 FILE_DIR_MERGED_ASSETS,移除拼接的 out 目录
String outFolder = PluginFileUtils.adjustPath(mProject.projectDir.path,
        FileConstant.FILE_DIR_BUILD,
        FileConstant.FILE_DIR_INTERMEDIATES,
        FileConstant.FILE_DIR_MERGED_ASSETS,
        CommUtils.getFirstCharLowercaseStr(CommonManager.getmVariantName()))

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1458619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内存计算研究进展-通用的近数据计算架构

通用的近数据计算架构方面代表性工作有: AMD Research的 TOP-PIM,Carnegie Mellon Univeristy 的 TOM, University of Wisconsin-Madison 的 DRAMA 和 NDA,Seoul National University 的 PEI ,IBM Research 的 AMC (ac…

【金蝶BI方案】做生产订单分析,要分析哪些指标?

一般来说,做生产订单分析要做量大部分的内容。一个是分析总的计划生产数据和实际完成情况、良品情况;另一个则是详细分析每种产品的订单量、计划生产数量、实际完工数量等。从而让运营管理者更加直接地了解到生产订单情况,更好地安排生产任务…

单片机学习笔记---红外遥控红外遥控电机调速(完结篇)

目录 低电平触发中断和下降沿触发中断的区别 红外遥控 Int0.c Int.h Timer0.c Timer0.h IR.c IR.h main.c 红外遥控电机调速 Timer1.c Timer.h Motor.c Motor.h main.c 上一节讲了红外发送和接收的工作原理,这一节开始代码演示! 提前说…

九州金榜|家庭教育中孩子焦虑怎么办?

随着现代社会的快速发展,孩子们面临的压力和焦虑感也在逐渐增强。家庭教育作为孩子成长过程中的重要环节,对于如何有效缓解孩子焦虑情绪产生是家长不得不面对的问题,九州金榜家庭教育以为,我们需要了解孩子焦虑的根源,…

mysql同类型的多行变成一行value1和value2不同的列

关键字 row_number() over (partition by) 例如,下面的数据, 这是按照name分组后,展示property值。 我们想得到这样的值; 第一步:将每一组的property标上序号 select name,property,row_number() over (partition by name order…

Java中的Arrays和Lambda表达式

Arrays和Lambda Arrays常用方法数组中是对象(如何排序) Lambda什么是LambdaLambda表达式的省略规则 Arrays 是一个用来操作数组的工具类 常用方法 数组中是对象(如何排序) 方式一 方式二 Lambda 什么是Lambda 是JDK 8 开始新…

fastApi笔记03-请求体

请求体是客户端发送给API的数据,fastApi使用 Pydantic 模型来声明请求体 不能使用 GET操作(HTTP 方法)发送请求体。 要发送数据,必须使用下列方法之一:POST(较常见)、PUT、DELETE 或 PATCH 创…

自养号测评低成本高效率推广,安全可控

测评的作用在于让用户更真实、清晰、快捷地了解产品以及产品的使用方法和体验。通过买家对产品的测评,也可以帮助厂商和卖家优化产品缺陷,提高用户的使用体验。这进而帮助他们获得更好的销量,并更深入地了解市场需求。因此,测评在…

2024 互联网大厂职级和薪资一览表!

在向往互联网的朋友们的眼中,互联网大厂的工作可是一个“香饽饽”,无论是薪资福利、还是晋升制度,都是整个行业的标杆。 “大厂经验”更是互联网就业环境中的一块金字招牌,让简历光鲜度up up,对找工作有很大的帮助。 所…

GitHub | 在 GitHub 上在线展示 Vue 项目

简洁版&#xff1a;上传所有代码 << 构建项目并上传 dist 目录 << 设置仓库 << 访问 Step1&#xff1a;在 GitHub 上新建仓库&#xff0c;并将 Vue 项目的代码 push 到该仓库中。坑点在于&#xff0c;如果你是从 GitHub 上 clone 的别人的项目&#xff0c;那…

多层深度土壤墒情监测站

TH-GTS05随着科技的不断进步&#xff0c;农业生产的智能化和精准化已成为大势所趋。多层深度土壤墒情监测站作为现代农业的重要组成部分&#xff0c;为农业生产提供了强大的技术支持。 一、什么是多层深度土壤墒情监测站&#xff1f; 多层深度土壤墒情监测站是一种高科技农业设…

OpenCV 4基础篇| 色彩空间类型转换

目录 1. 色彩空间基础2. 色彩空间类型2.1 GRAY 色彩空间2.2 BGR 色彩空间2.3 CMY(K) 色彩空间2.4 XYZ 色彩空间2.5 HSV 色彩空间2.6 HLS 色彩空间2.7 CIEL*a*b* 色彩空间2.8 CIEL*u*v* 色彩空间2.9 YCrCb 色彩空间 3. 类型转换函数3.1 cv2.cvtColor3.2 cv2.inRange 1. 色彩空间…

Git基本操作(2)

Git基本操作&#xff08;2&#xff09; 上交文件之后&#xff0c;git文件的变化git cat-file HEAD指针里面有啥文件被修改git statusgit diff 文件名 版本回退&#xff08;git reset&#xff09;撤销回退git reflog 撤销的三种情况还没有addgit checkout -- [file] 已经add还没…

不买服务器也可以将本地服务放到互联网(ngrok内网穿透)

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 不买服务器也可以将本地服务放到互联网 前言ngrok基础&#xff1a;穿越网络边界的魔法使用场景&#xff1a;突破网络限制的利器实战 前言 在网络的世界里&#xff0c;有时候你的服务像是困在一座数字…

BTC网络 之 区块裁剪

BTC网络区块总大小 由于BTC网络的区块一直在增长&#xff0c;截至 2024年02月19日&#xff0c;区块总大小已达 550GB 如何节省存储空间 一旦最新交易已经被足够多的区块覆盖&#xff0c;这之前的支付交易就可以被裁剪以节省空间。 单个区块数据 下面我们对 交易0&#xff0c;1&…

AI破局俱乐部,你要了解的都在这里

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通…

CentOS已安装宝塔的情况下手动安装phpMyAdmin

CentOS 7.9.2009&#xff0c;宝塔7.9.4。 服务器中已有MySQL&#xff0c;可能不是通过宝塔安装的&#xff0c;而是手动安装的。用命令行可以正常进入MySQL查看和管理数据&#xff0c;说明已有的MySQL是正常的。在宝塔中点击数据库提示“未安装本地数据库&#xff0c;已隐藏无法…

VOC赋能人工智能:聆听客户之声,打造智能服务新体验

在当今这个信息爆炸的时代&#xff0c;客户的声音成为了企业宝贵的资源之一。如何有效收集、分析和利用这些声音&#xff0c;成为了企业在激烈的市场竞争中脱颖而出的关键。VOC&#xff08;客户之声&#xff09;作为一种先进的管理工具&#xff0c;正在逐渐受到企业的重视&…

【7-1】实验——实体统一和歧义消除

一、使用jieba完成公司名的实体统一 #核心代码&#xff1a;建立main_extract&#xff0c;当输入公司名&#xff0c;返回会被统一的简称 def main_extract(company_name,d_4_delete,stop_word,d_city_province): """ company_name 输入的公司名 stop_word 停…

Linux CentOS stream 9 firewalld

随着互联网行业快速发展&#xff0c;服务器成为用户部署网络业务重要的网络工具&#xff0c;但随之而来的就是更密集的网络攻击&#xff0c;这给网站带来了很大的阻碍。防火墙作为保障网络安全的主要设备&#xff0c;可以很好的抵御网络攻击。 防火墙基本上使用硬件和软件两种…