android 通过gradle去除aar的重复资源图片

news2024/10/6 10:30:31

背景:项目中引入了aar包,结果导致资源出问题了,于是需要对下面aar包进行重复资源去除操作

操作具体如下:

目录:app/build.gradle 末尾配置

apply from: "${project.rootDir}/scripts/excludewidgetAar.gradle"

排除图片资源的gradle.script配置代码如下:

目录:scripts/excludewidgetAar.gradle

// 解压 AAR 文件
task extractAar(type: Copy) {
    from(zipTree("./src/cadillacwidget/lib/widget-debug.aar"))
    into("$buildDir/extractedAar")
}

task removeSpecificResource {
    dependsOn extractAar
    doLast {
        def extractedDir = file("$buildDir/extractedAar/")
        def targetFiles = []
        extractedDir.eachFileRecurse { file ->
            if (file.name == "ic_favorites.png") {
                targetFiles << file
            }
            if (file.name == "ic_close.png") {
                targetFiles << file
            }
        }
        targetFiles.each { file ->
            println "Deleting file: ${file}"
            file.delete()
        }
    }
}

// 重新打包 AAR 文件
task createNewAar(type: Zip) {
    dependsOn removeSpecificResource
    from("$buildDir/extractedAar")
    archiveFileName = "widget-debug.aar"
    destinationDir = file("$buildDir/libs")
}


// 创建一个综合任务来执行所有步骤
task processAar {
    group 'ex'
    description '生成一个排除之后的aar包'
    dependsOn createNewAar
}

配置完后gradle面板就可以有单独的指令可以执行了!!!

双击gradle面板中的processAar执行成功删除了需要删除的重复文件

生成玩的aar包在app/build/libs/widget-debug.aar这个目录

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

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

相关文章

【文件夹加密】文件夹怎么加密码,快来试试这4个方法

文件夹怎么加密&#xff1f;在日常工作中&#xff0c;为了保护我们的文件数据、隐私信息不被泄露&#xff0c;因此文件夹加密非常有必要。文件夹加密技术是通过特定的算法改变文件夹中文件的信息数据&#xff0c;使未授权的用户即使获得了已加密的文件或文件夹&#xff0c;也因…

已解决javax.security.auth.DestroyFailedException:在尝试销毁某个对象时失败的正确解决方法,亲测有效!!!

已解决javax.security.auth.DestroyFailedException&#xff1a;在尝试销毁某个对象时失败的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 检查对象状态 确认权限设置 检查资源锁定情况 修正实现…

Windows环境下安装MySQL数据库的步骤

说明&#xff1a; 由于环境的不同&#xff0c;安装过程中可能会遇到各种各样的问题&#xff0c;不用慌&#xff0c;先根据错误提示搜索&#xff0c;多试一下。 安装前&#xff0c;请先认真看一下&#xff0c;有可能会遇到的几个问题&#xff1a; 1、证书链问题&#xff0c;一般…

【PyScript】PyScript 基础入门

【PyScript】PyScript 基础入门 PyScript 是一个为了支持 Python 运行在浏览器的开源平台。 1.PyScript 应用程序的创建 PyScript 程序需要以下三个内容 一个提供给浏览器的 index.html 文件。PyScript 的运行环境描述&#xff0c;通常是一个 pyscript.json 或 pyscript.to…

7km远距离WiFi实时图传模块,无人机海上无线传输方案,飞睿智能WiFi MESH自组网技术

在浩瀚无垠的海洋上&#xff0c;无人机正在开启一场前所未有的技术创新。它们不再只是天空的舞者&#xff0c;更是海洋的守望者&#xff0c;为我们带来前所未有的视野和数据。而这一切的背后&#xff0c;都离不开一项创新性的技术——飞睿智能远距离WiFi实时图传模块与无线Mesh…

热门开源Text2SQL框架

Chat2DB 项目地址&#xff1a;https://github.com/chat2db/Chat2DB简介&#xff1a;Chat2DB是一个通用的SQL客户端和数据分析工具&#xff0c;能够辅助生成SQL&#xff0c;同时支持对话式的数据分析功能&#xff0c;提供了网页、客户端2种使用方式&#xff0c;它支持几乎所有流…

[图解]SysML和EA建模住宅安全系统-01-包图

1 00:00:01,400 --> 00:00:04,870 得到这个之后&#xff0c;我们就来画我们的包图了 2 00:00:05,350 --> 00:00:07,940 我们来看包图的内容 3 00:00:09,750 --> 00:00:12,430 名字是这个&#xff0c;模型组织 4 00:00:13,820 --> 00:00:20,570 然后上面&#xf…

Xilinx FPGA:vivado用串口控制数码管

一、项目要求 要求输入从千位到个位数字给4位数码管&#xff0c;要求分别输入的数字都能显示 二、关键信号流向 三、程序设计 顶层&#xff1a; timescale 1ns / 1ps module TOP(input sys_clk ,input rst_n ,input rx_…

基于LangChain构建RAG应用

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;上一篇文章中我们详细介绍了RAG的核心思想以及搭建向量数据库的完整过程&#xff1b;&#x1f632; 本文将基于上一篇文章的结果进行开发&#xff0c;主…

@RequestParam注解的使用及源码解析

前言 RequestParam 注解是我们进行JavaEE开发&#xff0c;最常见的几个注解之一&#xff0c;这篇博文我们以案例和源码相结合&#xff0c;帮助大家更好的了解RequestParam 注解 使用案例 1.获取 URL 上的值 GetMapping("/simple") public String simple(RequestP…

MySQL自学教程:1. MySQL简介与安装

MySQL简介与安装 一、MySQL简介二、MySQL安装(一)Windows系统上的安装(二)Linux系统上的安装(以Ubuntu为例)(三)Mac OS系统上的安装三、安装后的基本配置四、总结一、MySQL简介 MySQL是一个流行的开源关系型数据库管理系统(RDBMS),广泛应用于各种业务场景,从小型个…

2024肥晨赠书活动第三期:《前端工程化:基于Vue.js 3.0的设计与实践》

文章目录 内容简介作者简介关于《前端工程化&#xff1a;基于Vue.js 3.0的设计与实践》文章目录文章简介《前端工程化&#xff1a;基于Vue.js 3.0的设计与实践》全书速览结束语 内容简介 本书以Vue.js的3.0版本为核心技术栈&#xff0c;围绕“前端工程化”和TypeScript的知识点…

保姆级本地部署Qwen2

重点&#xff1a;Qwen2提供了CPU与GPU两种运行方式 运行成功效果图&#xff1a; 前提说明&#xff1a;如果需要用GPU&#xff0c;那么请在物理机安装ubuntu系统&#xff0c;不然显卡驱动很难安装&#xff0c;不建议新手部署。训练微调模型需要用到GPU。本文仅以ubuntu系统演示…

vue3+ts <script setup lang=“ts“> element-plus的el-date-picker设置默认日期

效果图&#xff08;单个日期&#xff09;&#xff1a; utils.ts&#xff1a; /*** 格式化时间戳* param {number} timestamp 时间戳* param {string} format 格式* returns {string}*/ export const formatTimeStamp (timestamp: number, format: string) > {if (!timesta…

Python魔法参数:深入解析*args和**kwargs的强大用途

目录 引言 基础概念解析 *args:处理位置参数 **kwargs:处理关键字参数 *args和**kwargs的实际应用场景 1. 函数装饰器中使用*args和**kwargs 2. 类构造函数中使用*args和**kwargs 3. API调用中使用**kwargs 与其他参数类型的结合使用 结合默认参数 位置参数与关键…

利用powershell开展网络钓鱼

要确保人们打开我们的恶意文件并执行它们&#xff0c;我们只需让微软努力工作多年来赢得人们的信任&#xff0c;然后将一些危险的宏插入到幻灯片中。 本博文将介绍如何通过屏幕顶部的一个友好的警告提示&#xff0c;在用户启用宏后立即运行您的宏。 首先&#xff0c;我们需要打…

pytest-yaml-sanmu(五):跳过执行和预期失败

除了手动注册标记之外&#xff0c;pytest 还内置了一些标记可直接使用&#xff0c;每种内置标记都会用例带来不同的特殊效果&#xff0c;本文先介绍 3 种。 1. skip skip 标记通常用于忽略暂时无法执行&#xff0c;或不需要执行的用例。 pytest 在执行用例时&#xff0c;如果…

手持小风扇哪个品牌好耐用?手持小风扇品牌排行榜揭晓分享

炎炎夏日&#xff0c;手持小风扇、USB小风扇&#xff0c;成为人手一台的“网红”。这些小风扇造型小巧&#xff0c;可以装进包里&#xff0c;夏日出街或者挤公交地铁都可以拿出来吹一吹。那么这些小风扇性价比高不高呢&#xff1f;真的好用吗&#xff1f;耐用吗&#xff1f;根据…

00. 这里整理了最全的爬虫框架(Java + Python)

目录 1、前言 2、什么是网络爬虫 3、常见的爬虫框架 3.1、java框架 3.1.1、WebMagic 3.1.2、Jsoup 3.1.3、HttpClient 3.1.4、Crawler4j 3.1.5、HtmlUnit 3.1.6、Selenium 3.2、Python框架 3.2.1、Scrapy 3.2.2、BeautifulSoup Requests 3.2.3、Selenium 3.2.4…

web前端——javaScript

目录 一、javaScript概述 1.javaScript历史 2.JavaScript与html,css关系 二、基本语法 ①放在head中 ②放在 body中 ③写在外部的.js文件中 1.变量 2.数据类型 3.算术运算符 4.逻辑运算符 5.赋值运算 6.逻辑运算符 7.条件运算符 8.控制语句 三、函数 1…