Android Execution failed for task ‘:app:mergeDebugJavaResource
错误提示
FAILURE: Build failed with an exception.* What went wrong:
Execution failed for task ':app:mergeDebugJavaResource'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction> 2 files found with path 'kotlin/kotlin.kotlin_builtins' from inputs:- E:\202112\gradle-repository\caches\transforms-3\eec51480f0c4097df5888fd5dc97d23a\transformed\jetified-unityLibrary-release\jars\classes.jar- E:\202112\gradle-repository\caches\transforms-3\b3ae48471aeb3840f38fca5b419d2ac3\transformed\jetified-kotlin-stdlib-1.7.10.jarAdding a packagingOptions block may help, please refer tohttps://developer.android.com/reference/tools/gradle-api/7.3/com/android/build/api/dsl/ResourcesPackagingOptionsfor more information* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.* Get more help at https://help.gradle.org
原因:
App项目依赖的三方AAR,而AAR中编译后的字节码class.jar包含相同的kotlin-stdlib-1.7.10.jar文件,导致资源merge出现异常。官方给出了推荐的解决方案。
1.方案一 配置exclude策略
首先需要了解 Maven坐标(GAV)的查找详解
GAV坐标是用来定位Maven仓库中指定资源位置适应的一套规则。
- groupId:定义当前Maven组织名称
- artifactId:定义实际项目名称
- version:定义当前项目的当前版本
配置exclude需要配合着GAV坐标来使用,比如下面配置
dependencies {implementation('com.github.bumptech.glide:glide:4.13.2') {exclude group: 'com.github.bumptech.glide', module: 'annotations}
}
可以排除com.google.guava:guava所有的传递依赖,只依赖显式声明的依赖项
dependencies {implementation('com.google.guava:guava:23.0') {transitive = false}
}
默认情况下,依赖com.github.bumptech.glide:glide:4.13.2同时会同时依赖红框中的传递依赖项。但是,有些传递项用不到,就可以使用 exclude取消传递依赖项。

在工程目录下可以找到相关的依赖


这里的annotations项目中没有使用,就想移除。按照上面的配置重新构建项目,就会发现的annotations:4.13.2 就被移除了。
tips:
这种方式仅仅可以处理单个依赖项的依赖的传递,如果有其他依赖项有exclude 的依赖,最终还是会打包到apk中的。
如果需要自动排除在上声明的所有依赖项的传递依赖项。(官方例子)
configurations {implementation {exclude group: 'commons-collections', module: 'commons-collections'}
}dependencies {implementation 'commons-beanutils:commons-beanutils:1.9.4'implementation 'com.opencsv:opencsv:4.6'
}
2.方案二 配置picker策略
顶部贴的代码是项目构建时报错问题,我们打开E:\202112\gradle-repository\caches\transforms-3\eec51480f0c4097df5888fd5dc97d23a\transformed\jetified-unityLibrary-release\jars\classes.jar,aar目录class.jar 发现内部包含kotlin相关目录,和以 kotlin_builtins结尾的文件,这些文件在app主模块中已经包含,所有红圈中的内容不需要打入apk包中,或者进行ignore处理。

什么是.kotlin_builtins文件
使用这些文件主要有两种场景:
1.编译器从类路径上的 kotlin-stdlib 中查找它们以确定哪些内置声明可用
2.反射库 (kotlin-reflect) 将这些文件作为资源加载,以为内置声明提供反射功能。例如,String::class.members 返回类 kotlin.String
的所有成员,与 Kotlin 编译器看到这些成员的方式完全相同(尽管事实上存在没有 kotlin/String.class
文件,它被删除为字节码中的 java.lang.String
应用内配置文件路径
/app/build.gradle
android {packagingOptions {pickFirst "kotlin/kotlin.kotlin_builtins"pickFirst "kotlin/ranges/ranges.kotlin_builtins"pickFirst "kotlin/reflect/reflect.kotlin_builtins"pickFirst "kotlin/collections/collections.kotlin_builtins"pickFirst "kotlin/annotation/annotation.kotlin_builtins"pickFirst "kotlin/coroutines/coroutines.kotlin_builtins"pickFirst "kotlin/internal/internal.kotlin_builtins"pickFirst "DebugProbesKt.bin"resources {excludes += ['META-INF/gradle/incremental.annotation.processors']}}
}
3.方案三 配置 merge策略
Gradle 官方文档
Android Plugin DSL Refereence
相关文章:
Android Execution failed for task ‘:app:mergeDebugJavaResource
错误提示 FAILURE: Build failed with an exception.* What went wrong: Execution failed for task :app:mergeDebugJavaResource. > A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction> 2 files found with path k…...
spring事物源码分析
今天的任务是剖析源码,看看Spring 是怎么运行事务的,并且是基于当前最流行的SpringBoot。还有,我们之前剖析Mybatis 的时候,也知道,Mybatis 也有事务,那么,他俩融合之后,事务是交给谁…...
炫龙游戏本Win10系统总是蓝屏崩溃怎么办?
炫龙游戏本Win10系统总是蓝屏崩溃怎么办?有用户使用的炫龙游戏本最近总是在运行的过程中出现自动蓝屏的情况,有的时候自己还在操作电脑,而屏幕却蓝屏了,导致自己的工作被中断了。那么这个情况要怎么去进行修复呢?来看看…...
华为OD机试题,用 Java 解【数字加减游戏】问题
华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…...
C++ 手写一个高性能json生成与解析器
文章目录 前言一、了解json格式二、统一数据类型:TJson三、解析json数据四、输出json数据五、实现便利的修改与访问六、性能优化七、源码下载与解析前言 由于C++标准库中并不存在解析json数据库,但json格式又非常的常见 如今绝大部分网络数据传输都采用的json数据传输格式,…...
java——了解反射
目录 什么是反射? 反射如何获取类信息? 小结: 什么是反射? 反射是用代码分析类信息的能力 类中有哪些信息:方法、对象、构造器、全局变量、父类、接口等.... 反射如何获取类信息? 三种方式 1.通过对象…...
The Sandbox 中的独特体验——《奥米加》
在过去几年间,The Sandbox 游戏变得越来越受欢迎。因为我们为玩家提供了在虚拟世界中探索、创造和游戏的自由,没有线性游戏的限制。DeQuest 工作室创作的《奥米加》也正是如此,绝对是一个前所未有的体验! 先了解一下《奥米加》的故…...
76 Python写入csv文件时出现空行_newline参数解决
76 Python写入csv文件时出现空行_newline参数解决 文章目录76 Python写入csv文件时出现空行_newline参数解决1. 准备工作2. with open 语句没有newline参数3. with open 语句有newline参数4. 总结1. 准备工作 在电脑D盘新建一个【76】文件夹。 用VScode编辑器打开【76】文件夹…...
高等数学——定积分和不定积分
文章目录不定积分概念几何意义性质不定积分的基本公式三种主要积分法三类常见可积函数积分定积分概念几何意义性质积分上限的函数定积分的计算几何应用反常积分无穷区间的反常积分无界函数的反常积分不定积分 不定积分是导数的逆运算。 概念 原函数:设f(x)f(x)f(…...
imx6 usb增强信号强度
USB信号 参考:官方文档 USB信号完整性取决于许多因素,如电路设计、PCB布局、堆叠和阻抗。每个产品可能彼此不同,因此客户需要微调参数,以获得最佳的信号质量。 测试板已经路由出两个USB端口:一个OTG1,一个主机。每个端…...
深入理解性能压测工具原理
如果没有性能测试工具如何通过手工实现 如果没有性能测试工具,通过手工进行性能测试,这是一个值得我们思考的问题。这时候需要一个协调员发送指令,一个操作员进行操作,对系统施加压力,多个操作员代表着多个用户进行并…...
Java的概述和运行方式
目录 一.Java是什么? 1.1Java的目前状况和学习需求 1.2Java的平台分类和特点 二.Java程序的运行方式 2.1 Java的程序结构 2.2 JDK、JRE、JVM的关系 2.3 Java运行详情 总结 😽个人主页:tq02的博客_CSDN博客-领域博主 🌈理想…...
【C语言】每日刷题 —— 牛客
前言 大家好,今天带来一篇新的专栏 c_牛客,不出意外的话每天更新十道题,难度也是从易到难,自己复习的同时也希望能帮助到大家,题目答案会根据我所学到的知识提供最优解。 🏡个人主页:悲伤的猪大…...
JavaEE课程实践-Servlet的部署(tomcat服务器)
目录 Servlet简述 tomcat服务器的安装和运行 Servlet的部署 部署具体步骤 一、创建maven工程 二、创建Servlet类 三、导入相应jar包 四、编写Servlet代码 五、运行maven项目,启动tomcat服务器 六、测试访问是否成功。 Servlet简述 Servlet 是 Java EE 技术…...
Java 中的拆箱和装箱
在 Java 中,每个基本数据类型都对应了一个包装类型,比如:int 的包装类型是 Integer,double 的包装类型是 Double…那么,基本数据类型和包装类型有什么区别呢? 大概有以下几点区别: 成员变量的…...
从0开始自制解释器——实现多位整数的加减法计算器
上一篇我们实现了一个简单的加法计算器,并且了解了基本的词法分析、词法分析器的概念。本篇我们将要对之前实现的加法计算器进行扩展,我们为它添加以下几个功能 计算减法能自动识别并跳过空白字符不再局限于单个整数,而是能计算多位整数 提…...
(12)C#传智:File类,泛型,字典,FileStream,StreamReader,多态
内容有点多,重点:泛型、字典,流与多态。 继续深入学习内容:List、Dictionary、using语句、FileStream 一、File类的继续学心 File.ReadAllLines(string path,Encoding,encoding)指定编码读取返回行字串数组 File.WriteAllText(string…...
Dubbo的服务暴漏与服务发现源码详解
服务暴漏 如果配置需要刷新则根据配置优先级刷新服务配置 如果服务已经导出,则直接返回 是否异步导出(全局或者服务级别配置了异步,则需要异步导出服务) 服务暴漏入口DefaultModuleDeployer#exportServices private void exp…...
Python 的IDE——PyCharm
IDE介绍与安装 介绍 集成开发环境(IDE) 集成开发环境(IDE,integrated Development Environment) —— 集成开发软件需要的所有工具,一般包括以下工具: 图形用户界面 代码编辑器(支持代码补全、自动缩进) 编译器/解释器 调试器…...
01 C语言使用链表实现队列(Queue、FIFO)模块
01 C语言使用链表实现队列(Queue、FIFO)模块 作者将狼才鲸创建日期2023-03-08Gitee源码仓库地址:C语言使用链表实现队列(Queue、FIFO)模块 Linux原生的队列KFIFO一次只能操作一个队列,操作变长元素时&…...
实战指南|OpenWrt磁盘扩容全流程解析与避坑技巧
1. 为什么需要给OpenWrt扩容? 很多朋友第一次接触OpenWrt时都会遇到一个尴尬的问题:系统默认分配的存储空间太小了。我自己刚开始用OpenWrt时也踩过这个坑,当时想装个Docker跑点服务,结果发现连最基本的镜像都拉不下来。这就像给…...
深入解析Triton Inference Server的Backend机制与实战配置
1. Triton Inference Server的Backend机制揭秘 第一次接触Triton Inference Server时,我被它的Backend机制搞得一头雾水。直到在真实项目中踩过几次坑后,才真正理解它的精妙之处。简单来说,Backend就像是一个万能适配器,让Triton能…...
C语言开发者视角:Kandinsky-5.0-I2V-Lite-5s高性能推理引擎调用
C语言开发者视角:Kandinsky-5.0-I2V-Lite-5s高性能推理引擎调用 1. 引言:当静态告警遇上动态生成 想象一下这样的场景:工业监控系统捕捉到设备异常,触发静态告警图片。传统方案中,这张图片需要人工介入分析ÿ…...
春招已经过半,这一波再不动手,基本就没位置了
关注 霍格沃兹测试学院公众号,回复「资料」,领取人工智能测试开发技术合集导读3月底这个时间点,如果你还在纠结“要不要投”,那基本已经慢半拍了。现在的真实情况是:大厂已经进入筛选面试并行阶段一部分公司已经开始发…...
港科资讯|郑光廷教授出席国际科技组织发展与全球科技治理论坛 分享协作实践
2026年3 月 28 日,国际科技组织发展与全球科技治理论坛在北京中关村国际创新中心成功举办。香港科技大学副校长(研究及发展)郑光廷教授受邀出席并发表主题演讲,香港科大内地办(北京)主任袁冶老师一同参会,与中外嘉宾交…...
3个秘诀让城通网盘下载提速10倍:ctfileGet工具全解析
3个秘诀让城通网盘下载提速10倍:ctfileGet工具全解析 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet ctfileGet是一款专注于获取城通网盘直连地址的开源工具,通过本地解析技术帮…...
三步打造个性化Windows任务栏:TranslucentTB效率工具完全指南
三步打造个性化Windows任务栏:TranslucentTB效率工具完全指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 你是否曾觉得Wi…...
像素剧本圣殿一文详解:复古未来像素美学×专业剧本格式输出规范
像素剧本圣殿一文详解:复古未来像素美学专业剧本格式输出规范 1. 工具概览与核心价值 像素剧本圣殿(Pixel Script Temple)是一款专为影视、游戏编剧设计的AI创作工具。基于Qwen2.5-14B-Instruct大模型深度微调,它巧妙融合了8-Bi…...
激发创意:利用快马平台ai模型辅助设计与优化cmhhc算法
激发创意:利用快马平台AI模型辅助设计与优化CMHHC算法 最近在做一个字符串压缩相关的项目,需要实现一个自定义的压缩算法CMHHC。这个算法的核心思想其实很简单:对于连续出现的相同字符,用该字符加上出现次数来表示。比如"aa…...
【人生底稿 03】2012 末日传说与我踏入 IT 的起点
接上《人生底稿》系列,本篇记录一段真实的成长碎片,不严格按时间线更新,只为记下一个农村少年,一步步走向社会的真实轨迹。 在参加某科技公司 ITMS 培训之前,我先经历了一轮面试 —— 上机题 技术面,分数…...
