解决Android项目中调用高于minSdkVersion版本的依赖库lib/sdk/api导致无法编译成功的问题

解决打包APK时候的报错:uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library 目录 一.目的 1.解决打包APK时候的报错:uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library 二.操作:1:完成:修改:Android最低API等级 1.修改:Android最低API等级 一.目的 1.解决打包APK时候的报错:uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library 阅读详情

问题描述

在AndroidStudio项目中,为避免重复造轮子,经常需要引入一些依赖库,但有时候引入的依赖库比项目minSdkVersion还要高,此时项目会无法编译成功,报出以下error。

Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 24 declared in library [:sdk-release:] /Users/dvlee/.gradle/caches/transforms-2/files-2.1/5c4b5f1d6ae801e31789a46703d1d014/sdk-release/AndroidManifest.xml as the library might be using APIs not available in 19
	Suggestion: use a compatible library with a minSdk of at most 19,
		or increase this project's minSdk version to at least 24,
		or use tools:overrideLibrary="cn.hidavid.lecelib" to force usage (may lead to runtime failures)

其实在error中已经很清楚的说明的解决方案了,下面我再描述一下。

处理方法

在项目AndroidManifest中添加

<uses-sdk tools:overrideLibrary="cn.hidavid.lecelib"/>

若项目中存在多个这样的依赖库,可以用逗号隔开包名,如:

<uses-sdk tools:overrideLibrary="cn.hidavid.lecelib,cn.hidavid.haha,cn.hidavid.hehe"/>
Android Studio 引入uiautomator 问题:Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 18 declared in library [io.apptik.widget:multislider-uiautomator:1.3] C:\Users\Frank\.gradle\caches\transforms-1\files... 阅读详情

相关推荐

安卓开发入门篇(一):Android Studio导入ApiDemos

引言本人程序员,之前做网站比较多,nodejs/express+html/css+mysql,再之前也做过Java开发,编程上还是有丰富的经验。在持续的实战中,发现想做产品的话,前端似乎更重要,因为前端才能看到产品形态。虽然说移动端形势已经每况愈下,但考虑到VR、车载系统、Glass等各类终端系统都是基于安卓,还是觉得有必要掌握移动端开发。遂立志学习安卓,边学习,边记录心路历程,以帮助更多像我这样的

dreamer2020的专栏 2万+

Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in lib

报错信息: Information:Gradle tasks [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :loginlibrary:generateDebugSources, :loginlibrary:generateDebugAndroidTestSou...

try 1万+

Unity接入Android SDK:从环境配置到构建排错的完整指南

在移动应用开发中,跨平台引擎与原生SDK的集成是常见的工程挑战,其核心在于理解工具链的协同工作原理。Unity作为主流的跨平台开发引擎,在构建Android应用时,实质上是作为项目生成器和构建调度器,通过调用外部工具链(包括JDK、Android SDK、NDK和Gradle)来完成最终APK的编译与打包。这一过程的技术价值在于实现了C#逻辑与Android原生能力的无缝桥接,但版本兼容性配置的复杂性往往成为开发流程中的主要障碍。在实际应用场景中,开发者常因JDK版本过高、SDK路径错误或Gradle配置不

weixin_30565199的博客 429

Flutter gradle构建时报错:Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than versio

Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 23 declared in library [:biometric_storage] /home/liucz/Flutter/flutter_linux_2.0.4-stable/flutter/.pub-cache/hosted/pub.flutter-io.cn/biometric_storage-1.0.1+5/android/build

yzpbright的博客 2156

Unity Android构建失败终极指南:Gradle与AGP版本兼容性深度解析

在Android应用开发中,构建系统是连接源代码与可执行应用的关键桥梁。Gradle作为主流的自动化构建工具,通过其灵活的插件机制管理项目依赖、编译和打包流程。Android Gradle Plugin(AGP)则是专为Android平台定制的Gradle插件,负责处理资源编译、APK生成等Android特有任务。其技术价值在于实现了跨平台、可复用的构建逻辑,大幅提升了开发效率。然而,Gradle与AGP版本之间存在严格的对应关系,版本不匹配会导致构建链断裂,这在Unity引擎的Android构建场景中尤为

weixin_34232744的博客 459

Android应用启动闪退排查实战:从日志分析到系统化解决方案

在移动应用开发中,应用闪退是开发者经常遇到的棘手问题,尤其在应用启动阶段发生的“秒退”现象,直接影响用户体验。其核心原理通常源于代码异常、资源加载失败或系统兼容性冲突,导致应用进程意外终止。从技术价值角度看,高效的闪排查错能力是保障应用稳定性的关键,能显著提升开发效率和产品质量。常见的应用场景包括Android应用开发、移动端测试与调试、以及性能优化工作流。本文将聚焦Android Studio开发环境,深入探讨如何利用Logcat日志分析、Manifest配置检查、依赖冲突解决等实战技巧,系统化定位并修复

weixin_33733810的博客 637

Cocos Creator Android打包排错指南:从环境配置到Gradle问题解决

在移动应用开发中,构建打包是项目交付前的关键环节,它涉及代码编译、资源整合和平台适配等多个步骤。其核心原理是通过构建工具(如Gradle)将源代码、依赖库和资源文件转换为可在目标设备上运行的安装包。这一过程的技术价值在于确保应用在不同设备和系统版本上的兼容性与稳定性。在实际的跨平台游戏开发场景中,Cocos Creator引擎与Android Studio的集成构建常因环境配置复杂而出现打包失败问题,尤其是JDK版本不匹配和Gradle依赖解析错误。针对这些高频问题,开发者需要系统掌握环境验证、缓存清理和构

weixin_30920597的博客 415

Linux下安装Android Studio Bumblebee:从KVM加速到SDK配置全攻略

在Linux上进行Android开发,环境搭建的成败往往取决于基础组件是否配置得当。KVM作为Linux内核级虚拟化方案,是模拟器流畅运行的关键技术,其原理是通过硬件辅助虚拟化提升执行效率。Gradle作为Android构建系统的核心,其版本与JDK的匹配程度直接影响编译成功率和速度。SDK工具链的完整性和许可配置,则决定了项目能否顺利编译与调试。这些概念共同构成了Linux Android开发的基础设施,适用于日常开发、自动化测试及CI/CD等场景。本文围绕这些底层技术讲解,结合Android Studi

weixin_34013044的博客 387

Unity安卓打包资源冲突:Gradle构建原理与packagingOptions实战解决方案

在移动应用开发中,Gradle作为Android官方的项目构建工具,负责管理依赖、编译代码和打包资源。其核心原理是通过解析build.gradle脚本,协调多模块间的资源合并与冲突处理。在Unity与Android原生混合开发场景下,当游戏资源与第三方SDK资源发生命名冲突时,Gradle默认的资源合并机制会抛出“Duplicate resources”错误,导致构建失败。这种资源冲突问题常见于集成广告、支付等多SDK的复杂项目中,直接影响应用打包流程。通过深入理解Gradle的packagingOptio

weixin_30443731的博客 332

Android平台libredwg交叉编译与JNI集成实践指南

在移动端处理DWG图纸文件是Android开发中的常见需求,而DWG作为AutoCAD的私有二进制格式,需要借助C/C++库进行解析。交叉编译正是将这类依赖C库移植到ARM架构Android系统的核心技术。通过NDK工具链与Autotools项目的配合,开发者可以构建出适配Android的.so库,并借助JNI实现Java层调用。本文从工具链选型、依赖库处理、configure参数配置到Android Studio的CMake集成,系统梳理了libredwg的完整交叉编译流程。掌握这一套方法论,同样适用于O

weixin_34246551的博客 552

Android端DWG解析:libredwg交叉编译与JNI封装实战

在移动端处理工程图纸格式,往往需要复用成熟的C/C++库。NDK交叉编译技术正是连接底层C库与Android系统的关键桥梁,它通过工具链配置、环境变量设定与目标架构编译,将原生库转换为Android可用的静态或动态库。JNI则作为Java层与Native层之间的接口,让Android应用能够直接调用C库的解析能力。这一技术路径广泛应用于工程看图、离线文档处理、数据解析等场景。本文以工程图纸解析为例,详细讲解如何将libredwg这一开源C库通过NDK工具链交叉编译为Android静态库,并封装成JNI接口供

weixin_34416754的博客 556

Unity安卓打包:解决Gradle依赖与资源冲突的实战指南

在Android应用开发中,Gradle作为核心构建工具,负责管理项目依赖、编译代码和打包资源。其工作原理是通过解析build.gradle脚本,自动化处理复杂的构建流程,从而提升开发效率。对于Unity开发者而言,理解Gradle构建流程的技术价值在于能够突破引擎封装,直接掌控原生层配置,这是实现稳定打包、深度集成第三方SDK和优化应用性能的关键。尤其在集成广告、支付等SDK时,常会遇到依赖版本冲突、资源文件重复等典型问题,导致构建失败。本文聚焦Unity安卓打包中最常见的Gradle依赖冲突与资源合并问

anvt77205的博客 359

build-tools.29.0.2.zip 配置指南:Android 构建工具版本对齐与避坑

在 Android 构建体系中,build-tools 是负责资源编译、字节码转换、签名对齐的核心工具集,其版本必须与 AGP、Gradle、JDK 严格对齐才能保证构建链稳定。build-tools.29.0.2 作为 API 29 时代的版本锚点,常用于旧项目复现和离线环境搭建。正确落地需要关注 zip 解压后的目录结构、环境变量配置以及 JDK 版本匹配,否则容易出现找不到构建工具、权限拒绝或类版本错误。在 CI 缓存、离线 SDK 镜像和旧项目维护等场景中,显式锁定 build-tools 版本并配

weixin_33889665的博客 421

Limbo(QEMU Android 模拟器)源码编译与构建实战指南:从环境准备到 ndk-gdb 调试

> **导读**:Limbo 是一款基于 QEMU 的开源 Android 模拟器,可在一台 Android 设备上虚拟运行 x86/x86_64、ARM/ARM64、PowerPC/PowerPC64 与 Sparc 四种体系的客户机系统。本文以仓库根目录 [README.md](https://link.gitcode.com/i/a8432c9fda430c33ce8545bf67fc1dc

gitblog_00239的博客 163

Android Studio集成百度地图SDK:从AK申请到生命周期管理的避坑指南

移动应用开发中,地图功能已成为出行、社交、生活服务类App的高频需求,而Android平台的地图SDK集成往往并非从绘制代码开始,而是绕不开权限声明、签名校验与依赖配置等底层环节。理解SDK的鉴权原理,掌握AK与SHA1的匹配关系,是地图正常显示的前提。工程实践中,合理选择Maven依赖方式、正确配置AndroidManifest与动态权限,能有效避免构建冲突和运行期崩溃。地图控件的生命周期管理则直接影响内存占用与交互体验,进阶的样式定制与状态恢复能力让地图呈现更贴合业务场景。本文以百度地图SDK为例,系统

weixin_34414196的博客 368

Unity 2022.2 Android打包环境配置全攻略:从JDK、SDK、NDK到Gradle避坑指南

在移动应用开发中,构建环境的正确配置是项目成功打包和部署的基础。其核心原理在于协调编辑器与原生工具链之间的版本兼容性与路径调用关系,这直接决定了构建流程的稳定性与效率。对于使用Unity引擎进行Android开发的团队而言,掌握环境配置的技术细节具有重要价值,它能有效避免因版本冲突、路径错误或依赖管理不当导致的构建失败,从而提升开发迭代速度。特别是在游戏开发、跨平台应用等场景中,稳定的构建环境是持续集成和快速发布的前提。本文聚焦于Unity 2022.2 LTS版本,针对其Android打包环境中的常见陷阱

weixin_33806300的博客 405

手把手教你用NE555+LM324搭建红外倒车雷达(附Multisim仿真文件)

本文详细介绍了如何使用NE555定时器和LM324运算放大器搭建一个红外倒车雷达系统。内容涵盖从核心原理拆解、模块电路设计(包括红外发射、接收放大、检波与电压比较)到实战焊接调试的全过程,并提供了Multisim仿真验证思路,帮助电子爱好者与初学者将模拟电路理论转化为可工作的实用项目。

echo99的专栏 676

FFmpeg编译实战:从configure参数到Android/iOS交叉编译全解析

在音视频开发中,FFmpeg是绕不开的核心基础库,但官方预编译版本往往无法满足项目的定制化需求:包体过大、缺少特定编码器、或无法适配目标平台。理解FFmpeg编译的本质,是通过configure脚本对功能模块、依赖库、汇编优化和输出形式进行精细裁剪,从而构建出贴合业务场景的高效专用库。这一过程既涉及本地原生构建中x264、libmp3lame等外部依赖的取舍,也涵盖Android NDK与iOS Xcode工具链下的交叉编译配置。掌握静态库与动态库的选择、裁剪逻辑以及常见链接错误排查,能够帮助开发者在播放器

weixin_34279579的博客 325

基于STM32的智能家用节能控制系统设计

该系统可以实时监测家庭的环境参数,如温湿度、光照强度和人体存在情况,根据设定的节能策略自动控制灯光、空调、风扇等家电设备,从而降低不必要的能源消耗。该基于STM32的智能家用节能控制系统通过多种传感器实现了对家庭环境的实时监测,并结合继电器控制模块实现了对家电设备的自动化控制,从而达到节能减排的效果。根据传感器获取的数据,判断是否需要开启或关闭家电设备,从而降低不必要的能源消耗,达到节能的目的。:继电器的控制引脚连接至STM32的GPIO引脚(如PB0、PB1),用于控制灯光、风扇、空调等家电设备的开关。

stm32d1219的博客 1245

基于STM32L4XX 、HAL库的TMC2209-LA-T步进电机驱动器驱动程序应用设计

/ R/W=0 表示写。uint32_t gconf_value = (0 << 0) // I_scale_analog: 禁用,使用UART控制电流。uint32_t ihold_irun = (8 << 0) // 保持电流 8/31 最大值。

PP_Cottage的博客 449

LayaNative源码编译实战:从环境配置到双端打包全流程

源码编译是开发者掌握技术底层能力的关键路径,无论是Ubuntu下编译Redis8、ComfyUI源码编译,还是LLaMA.cpp在Windows上启用Vulkan支持,其核心心法均在于版本匹配、环境变量干净与构建脚本可理解。对于使用LayaAir引擎的H5游戏开发者而言,LayaNative作为原生运行时,提供了将Web项目打包为安卓APK与iOS应用的官方通道,但只有通过源码编译才能真正突破黑盒限制,实现深度定制。本文从源码编译的通用原理切入,系统讲解Android端NDK、Gradle工具链配置,iOS

weixin_34327761的博客 132

【CVPR2025 DEIM】超详细!手把手训练自己的数据集教学:从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。本文在win系统上训练,最强实时目标检测算法!

本文详细介绍了CVPR2025 DEIM目标检测模型的完整使用流程。内容包含:1)源码下载与虚拟环境配置;2)Visdrone2019数据集准备与配置文件修改;3)训练参数设置及Windows系统常见问题解决方案;4)模型验证、推理测试及热力图生成方法。特别针对Windows用户提供了虚拟环境配置指导,并详细说明了数据集路径设置、参数调整等关键步骤。通过本文的指导,小伙伴可以快速掌握DEIM模型的使用方法,用于学术论文研究和实验分析。

Ai缝合怪、助力小伙伴高效发论文 7618
上一篇: 【UE4】一个实现Web穿透,用HTML开发UI的方式——WebUI的用法
下一篇: UE4日常使用技巧锦集
Hi David
博客等级 码龄17年 5195粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hi David

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值