当前位置: 首页 > news >正文

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

在这里插入图片描述

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

问题 & 排查

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.lryc.cn/news/302883.html

相关文章:

  • spring boot 使用AOP实现是否已登录检测
  • 为什么从没有负值的数据中绘制的小提琴图(Violin Plot)会出现负值部分?
  • 有哪几种行为会导致服务器被入侵
  • Redis RabbitMQ
  • http 和 https 的区别?
  • C++中线程的创建
  • 基于JavaWeb开发的家政服务平台计算机毕业设计[附源码]
  • 性能调优:容易忽视的JavaScript标签属性及其性能影响
  • 【机器学习笔记】7 KNN算法
  • mysql 2-20
  • Unity3D Shader 素描风格渲染管线实现详解
  • WordPress站点如何实现发布文章即主动推送到百度快速收录和普通收录?
  • C++11---(3)
  • 【常识】大数据设计基础知识
  • Vue:Vuex模块化编码(非常实用)
  • springboot 异步执行方法详细介绍
  • 拿捏c语言指针(下)
  • Spring源码笔记之SpringIOC--(3)什么是BeanFactory?
  • 微信小程序之会议OA个人中心后台交互
  • 代码随想录算法训练营第52天(动态规划09 ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III
  • 微服务篇之负载均衡
  • wayland(xdg_wm_base) + egl + opengles 使用FBO渲染到纹理实例(六)
  • 基于 RisingWave、Instaclustr 和 Apache Superset 对维基百科实时监控
  • 建站用帝国CMS好还是WordPress好
  • 深度学习基础之《TensorFlow框架(2)—图》
  • Web3区块链游戏:创造虚拟世界的全新体验
  • 单机启动/开机启动SpringBoot服务的正确方式
  • [C#]winform基于opencvsharp结合CSRNet算法实现低光图像增强黑暗图片变亮变清晰
  • 抓包分析 TCP 协议
  • 代码随想录算法训练营day27 | 93.复原IP地址、78.子集、90.子集II