Android Studio gradle配置packagingOptions打包so库重复
目录
- 正文
- pickFirst 匹配
- doNotStrip 设置
- merge 将匹配的文件都添加到APK中
- exclude 过滤
正文
在安卓开发中,通常会使用到gradle来编译,在安卓项目的app目录下的build.gradle中是用来对编译进行配置的,packagingOptions 是其中的一个打包配置,常见的设置项有exclude、pickFirst、doNotStrip、merge。
在日常代码开发中,我们需要知其然,而知其所以然,本文章知识也是Android日常瘦身的的必备知识。
pickFirst 匹配
pickFirst,匹配到多个相同文件,只提取第一个,不能过滤aar和jar中的文件。
packagingOptions { pickFirst 'lib/arm64-v8a/libmsoptimize.so' }
比如下面的打包日志出错,就是说有重复相同的so库,那么通过 pickFirst 来配置使用第一个就可以解决。 2 files found with path ‘lib/arm64-v8a/libmsoptimize.so’ from inputs:
doNotStrip 设置
doNotStrip 可以设置某些动态库不被优化压缩。
比如在使用华为HMS的相关服务时,他会让你注意不要压缩一些so库。
packagingOptions { pickFirst 'lib/libc++_shared.so' doNotStrip "lib/armeabi/libYTCommon.so" doNotStrip "lib/armeabi-v7a/libYTCommon.so" }
merge 将匹配的文件都添加到APK中
merge 和pickFirst有些相反,会合并所有文件
packagingOptions { merge '**/LICENSE.txt' merge '**/NOTICE.txt' }
exclude 过滤
exclude 过滤掉某些文件或者目录不添加到APK中
不能过滤aar和jar中的内容,比如项目中有些依赖库中有多余的so库,在App中并不是必需的,所以在打包的时候就可以将其过滤了
packagingOptions { exclude 'META-INF/**' exclude 'lib/arm64-v8a/libmediaplayer.so' }
以上就是Android Studio gradle配置packagingOptions打包so库重复的详细内容,更多关于Android Studio gradle配置的资料请关注我们其它相关文章!
相关推荐
-
Android 一些常用的混淆Proguard
一些公共的模板 ############################################# # # 对于一些基本指令的添加 # ############################################# # 代码混淆压缩比,在 0~7 之间,默认为 5,一般不做修改 -optimizationpasses 5 # 混合时不使用大小写混合,混合后的类名为小写 -dontusemixedcaseclassnames # 指定不去忽略非公共库的类 -dontskipno
-
SpringBoot结合ProGuard实现代码混淆(最新版)
前言 研究ProGuard也花了两天时间,其实最主要的时间花在前面proguard读取jar包的时候相关jar冲突的问题,但是总的来说不用拆分SpringBoot项目并且实现代码混淆已经很舒服了. ProGuard集成 1.maven的配置 具体配置如下: <build> <finalName>${artifactId}</finalName> <plugins> <plugin> <groupId>com.github.wveng
-
Android开发Kotlin DSL使用技巧掌握
目录 前言 什么是 DSL? 您使用任何 DSL 吗? 为什么我们使用 DSL? 我们如何编写自己的 DSL? 中缀 调用 现在,让我们讨论 Android 中 DSL 的用例和示例. 前言 在这篇文章中,我们将学习如何在您的 Android 项目中编写 Kotlin DSL. 这个文章会很长,所以花点时间,让我们一起来写你的 DSL.我们将讨论以下主题, 什么是简单英语中的 DSL? 您使用任何 DSL 吗? 为什么我们使用 DSL? 我们如何编写自己的 DSL 基本示例说明. 那么让我们开始
-
Android Jetpack Compose开发实用小技巧
目录 前言 实用小技巧 如何移除View点击阴影 Text文本如何垂直居中 如何移除Button的点击阴影 Dialog宽度如何全屏 如何提升编码效率 前言 在Compose开发的过程中,我们会经常遇到一些看起来很简单却不知道如何处理的小问题,比如去除点击阴影.Dialog全屏等问题,本文记录了这些常见小问题的处理方式.如有更好方案欢迎大佬们交流探讨- 实用小技巧 如何移除View点击阴影 这里的View指的是除了Button系列的之外,如Button.TextButton等,也就是自身没有on
-
Android MaterialAlertDialogBuilder修改按钮属性
目录 编写按钮属性 Dialog 风格设置 效果图 编写按钮属性 首先再values/themes 或者values/style在文件下编写按钮属性 buttonBarPositiveButtonStyle对应着确认按钮 buttonBarNegativeButtonStyle对应着取消按钮 <style name="AlertDialogTheme"> <item name="buttonBarPositiveButtonStyle">@s
-
Android开发ProGuard使用技巧掌握
目录 前言 什么是 ProGuard? 它对我们的应用程序有什么用处? 如何在我们的项目中使用它? 前言 在构建 Android 应用程序时,我们可能在项目中使用了 ProGuard.在这篇文章中,我们将了解所有功能以及如何在 Android 中有效地使用 ProGuard. 因此,让我们将其分解为以下几点: 什么是 ProGuard? ProGuard 是 Android 中的免费 java 工具,它可以帮助我们执行以下操作, 缩小(缩小)代码:删除项目中未使用的代码. 混淆代码:重命名类.字
-
Android Studio gradle配置packagingOptions打包so库重复
目录 正文 pickFirst 匹配 doNotStrip 设置 merge 将匹配的文件都添加到APK中 exclude 过滤 正文 在安卓开发中,通常会使用到gradle来编译,在安卓项目的app目录下的build.gradle中是用来对编译进行配置的,packagingOptions 是其中的一个打包配置,常见的设置项有exclude.pickFirst.doNotStrip.merge. 在日常代码开发中,我们需要知其然,而知其所以然,本文章知识也是Android日常瘦身的的必备知识.
-
Android Studio手动配置Gradle的方法
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置. 面向Java应用为主.当前其支持的语言限于Java.Groovy和Scala,计划未来将支持更多的语言. 下面是一些Gradle的功能 按约定声明构建和建设: 强大的支持多工程的构建: 强大的依赖管理(基于Apache Ivy),提供最大的便利去构建工程: 全力支持已有的 Maven 或者Ivy仓库基础建
-
Android studio gradle环境变量配置教程
本文实例为大家分享了Android studio gradle环境变量配置的教程,供大家参考,具体内容如下 我的gradle 下载自动解压到了这个目录 C:\Users\jacli\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst\gradle-2.10 1.右击"计算机"点击"属性"点击"高级系统设置" 你会看到系统属性 2.点击"环境变量"在弹
-
史上最全的Android build.gradle配置教程
前言 Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话,是可以不去学groovy的.当我们创建一个Android项目时会包含两个Android build.gradle配置详解文件,如下图: 一.Project的build.gradle文件: 对应的build.gradle代码如下: // Top-level build file where you can add configuration optio
-
史上最全Android build.gradle配置详解(小结)
Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话,是可以不去学groovy的.当我们创建一个Android项目时会包含两个Android build.gradle配置详解文件,如下图: 一.Project的build.gradle文件: 对应的build.gradle代码如下: // Top-level build file where you can add configuration options
-
浅谈Android Studio 的四种打包方式
虽然这个博客的内容很简单,但是作为新手的我还是百度了好久才掌握了Android Studio的打包方式,希望对后来人有所帮助.打包的第一种方式 (1)在Android Studio 中选中app这么module,选择菜单栏""Build--Generate signed APK"" (2)弹出窗口 (3)创建密钥库及密钥,创建后会自动选择刚创建的密钥库和密钥(已拥有密钥库跳过) 点击"Create new..."按钮创建密钥库 Key store
-
Android Studio 超级简单的打包生成apk的方法
本文介绍了Android Studio 超级简单的打包生成apk,分享给大家,也给自己留个笔记. 为什么要打包: apk文件就是一个包,打包就是要生成apk文件,有了apk别人才能安装使用.打包分debug版和release包,通常所说的打包指生成release版的apk,release版的apk会比debug版的小,release版的还会进行混淆和用自己的keystore签名,以防止别人反编译后重新打包替换你的应用. 简单点说就是给你的apk发身份证,上户口,防止和你长的一样的人,假冒你.这里
-
Android Studio Gradle依赖冲突解决方法
前言 本文主要给大家介绍了Android Studio Gradle依赖冲突解决的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 1. 查看依赖树 ./gradlew dependencies 2. 解决依赖冲突 一旦在构建中存在依赖冲突,开发人员需要决定哪个版本的库最终包含在构建中,有许多解决冲突的方法. 1. 逐个排除 compile('junit:junit:4.12'){ exclude group : 'org.hamcrest',module:'hamcre
-
Android Studio安装配置、环境搭建详细步骤及基本使用的详细教程
前言 Android Studio的安装配置及使用篇终于来啦~ 废话不多说,以下针对JDK正确安装(及其环境变量配置完毕,即Java开发环境下).Android Studio的安装,配置,以及创建工程.主题字体更换.窗口工具.布局.快捷方式等的基本使用逐一说明. 安装java 下载Java安装包(jdk,网上有很多下载地址,最好去官网下:https://www.java.com/zh_CN/),安装完后记得配置环境变量: 在"系统变量"新建一个变量名为JAVA_HOME的变量,变量值为
-
Android studio 下的APK打包失败问题解决办法
Android studio 下的APK打包失败问题解决办法 今天遇到了一个奇怪的问题,本来在Android studio 1.4上运行的好好的程序,到了我更新完的Android studio 2.1上就打包失败了,但是用调试机直接运行则没问题. 最后在app下的build.gradle下加入了这样的一段代码就通过了: lintOptions { abortOnError false checkReleaseBuilds false // 防止在发布的时候出现因MissingTranslatio
随机推荐
- Android编程实现获取标题栏、状态栏的高度、屏幕大小及模拟Home键的方法
- javascript中bind函数的作用实例介绍
- javascript中处理时间戳为日期格式的方法
- 12小时制和24小时制获取当天零点的问题探讨
- php中chdir()函数用法实例
- python实现字符串连接的三种方法及其效率、适用场景详解
- C#实现Menu和ContextMenu自定义风格及contextMenu自定义
- PHP学习笔记 用户注册模块用户类以及验证码类
- 返回对象在当前级别中是第几个元素的实现代码
- jquery删除数据记录时的弹出提示效果
- 艰难完成 nginx + puma 部署 rails 4的详细记录
- C#连接mysql数据库完整实例
- 利用JQuery制作符合Web标准的QQ弹出消息
- Java中四种访问权限资料整理
- C#实现图片上传(PC端和APP)保存及 跨域上传说明
- URL中去除指定参数实现C#代码
- PHP处理二进制数据的实现方法
- 关于PHP内置的字符串处理函数详解
- php获取$_POST同名参数数组的实现介绍
- Android实现简易记事本