Android 项目依赖库无法找到的解决方案
目录
错误信息解析
解决方案
1. 检查依赖版本
2. 检查 Maven 仓库配置
3. 强制刷新 Gradle 缓存
4. 检查网络连接
5. 手动下载依赖
总结
相关推荐
最近,我在编译一个 Android 老项目时遇到了一个问题,错误信息显示无法找到 com.gyf.immersionbar:immersionbar:3.0.0
这个依赖。经过一些排查和调试,我找到了几种解决方法,今天就来分享一下如何解决这个问题。
错误信息解析
FAILURE: Build completed with 14 failures.1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':app:checkCommonDebugAarMetadata'.
> Could not resolve all files for configuration ':app:commonDebugRuntimeClasspath'.> Could not find com.gyf.immersionbar:immersionbar:3.0.0.Searched in the following locations:- https://dl.google.com/dl/android/maven2/com/gyf/immersionbar/immersionbar/3.0.0/immersionbar-3.0.0.pom- https://jcenter.bintray.com/com/gyf/immersionbar/immersionbar/3.0.0/immersionbar-3.0.0.pom- https://repo.maven.apache.org/maven2/com/gyf/immersionbar/immersionbar/3.0.0/immersionbar-3.0.0.pom- https://jitpack.io/com/gyf/immersionbar/immersionbar/3.0.0/immersionbar-3.0.0.pomRequired by:project :app> Could not find com.tencent:mmkv:1.0.19.Searched in the following locations:- https://dl.google.com/dl/android/maven2/com/tencent/mmkv/1.0.19/mmkv-1.0.19.pom- https://jcenter.bintray.com/com/tencent/mmkv/1.0.19/mmkv-1.0.19.pom- https://repo.maven.apache.org/maven2/com/tencent/mmkv/1.0.19/mmkv-1.0.19.pom- https://jitpack.io/com/tencent/mmkv/1.0.19/mmkv-1.0.19.pomRequired by:project :app > com.gitee.zhang-yanqiang:easypermission:v2.0.12* 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.
==============================================================================
从错误信息中可以看出,Gradle 无法在常见的 Maven 仓库中找到指定版本的 immersionbar
依赖库。具体的错误是它无法解析 com.gyf.immersionbar:immersionbar:3.0.0
,说明该依赖在指定的仓库中不存在,或者配置出现了问题。
解决方案
1. 检查依赖版本
首先,我们需要确保 immersionbar
库的版本号是正确的。在很多时候,问题可能是因为指定的版本号不存在,或者该版本的库被移除了。检查一下 build.gradle
文件中的依赖部分,确保版本号正确。
例如,可以尝试使用稍新的版本,或者回退到较为稳定的版本:
dependencies { implementation 'com.gyf.immersionbar:immersionbar:3.0.1'
}
如果 3.0.0
版本存在问题,尝试更新为 3.0.1
或其他稳定版本,其他SDK可能能解决这个问题(该库换了引用地址,单纯的改版本无效)。
2. 检查 Maven 仓库配置
另一个可能导致问题的原因是仓库配置不正确。确保你的项目的 build.gradle
文件(通常是项目级 build.gradle
)中配置了正确的仓库地址。默认情况下,Android Studio 会使用 Google 的 Maven 仓库和 Maven Central,但如果没有正确配置,可能导致无法下载依赖。
确保 repositories
块包括以下内容:
allprojects {repositories {google()mavenCentral()maven { url 'https://jitpack.io' } // Jitpack 是常见的 Android 库托管平台}
}
高级AGP在项目级 settings.gradle。
pluginManagement {repositories {google()mavenCentral()gradlePluginPortal()}}
dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {google()mavenCentral()maven { url 'https://jitpack.io' }}
}
添加 maven { url 'https://jitpack.io' }
可以解决一些第三方库的下载问题,特别是当它们托管在 Jitpack 上时。
3. 强制刷新 Gradle 缓存
有时候 Gradle 会缓存旧的依赖信息,导致无法找到最新版本的库。为了避免缓存问题,可以通过以下命令强制 Gradle 刷新缓存并重新构建项目。
Android Studio -->Build-->Clean Project。
Android Studio -->Build-->Rebuild Project。
清除缓存,重新编译,分别尝试一下。
此外,你也可以在 Android Studio 中选择 File -> Invalidate Caches / Restart,然后选择 Invalidate and Restart,这样会清除缓存并重新启动 IDE。
4. 检查网络连接
如果你所在的网络环境对 Maven 仓库的访问有所限制,可能会导致依赖下载失败。例如,如果你在国内,访问外部 Maven 仓库(如 Maven Central 或 Jitpack)可能会受到一些限制。
在这种情况下,可以尝试使用国内的 Maven 镜像,或者配置 HTTP 代理来确保可以顺利访问依赖库。
5. 手动下载依赖
如果以上方法都不起作用,作为最后的手段,你可以手动下载 immersionbar
的 JAR 文件,然后将其放入项目的 libs
目录中。
首先,从其他源下载 immersionbar
的 JAR 文件,然后将 JAR 文件放入 libs
目录下,最后在 build.gradle
文件中引用:
dependencies { implementation files('libs/immersionbar-3.0.0.jar')
}
总结
作者是因为 immersionbar 换了路径,因此更换i mmersionbar 路径,重新引用 mmkv 解决当前问题:
dependencies { implementation 'com.geyifeng.immersionbar:immersionbar:3.2.2'implementation 'com.tencent:mmkv:1.3.9'
}
当你在 Android Studio 中遇到类似的构建问题时,通常是由于依赖版本、仓库配置或者网络连接问题导致的。通过逐步排查版本号、仓库配置、Gradle 缓存等问题,大多数依赖问题都可以得到解决。如果以上步骤仍无法解决问题,可以尝试手动下载依赖并添加到项目中。
相关推荐
Android Studio中的 Image Asset Studio(图标生成工具)-CSDN博客文章浏览阅读1.7w次,点赞20次,收藏44次。Android Studio 包含一个名为 Image Asset Studio 的工具,它可以帮我们把自定义图像、系统图标素材、文本字符串自动生成适配系统的应用图标。_android studio image assethttps://shuaici.blog.csdn.net/article/details/119670733高效开发-Android Studio自动补全-CSDN博客文章浏览阅读3.4k次,点赞5次,收藏13次。判断是否为空:变量.null+Enter。注意:只要 if (expr == null) 出现就可以 enter(回车) 了。其他相同。判断是否非空:变量.notnull+Enter。变量.nn+Enter(简单版)。本身for循环。变量for循环。变量倒序for循环。_android 自动补齐类型强制转化
https://shuaici.blog.csdn.net/article/details/121095525
相关文章:
Android 项目依赖库无法找到的解决方案
目录 错误信息解析 解决方案 1. 检查依赖版本 2. 检查 Maven 仓库配置 3. 强制刷新 Gradle 缓存 4. 检查网络连接 5. 手动下载依赖 总结 相关推荐 最近,我在编译一个 Android 老项目时遇到了一个问题,错误信息显示无法找到 com.gyf.immersionba…...
SpringBoot3整合SpringMVC
一、实现过程: (1).创建程序 (2).引入依赖: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"…...
内网穿透 natapp安装与使用
前言 NATAPP是一款基于ngrok的内网穿透工具。以下是对NATAPP的详细概述: 基本概念 定义:内网穿透(NAT穿透)是一种技术,它允许具有特定源IP地址和端口号的数据包能够绕过NAT设备,从而被正确地路由到内网主机…...
docker镜像构建企业级示例
华子目录 示例(在centos容器中源码编译nginx(单介构建))包准备为centos容器提供网络源添加企业7的ISO文件 提交为新的centos镜像编写dockerfile文件构建镜像如何优化自己构建的镜像大小多介构建 ldd命令基本用法示例 镜像优化方案…...
【论文阅读】龙芯2号处理器设计和性能分析
作者:胡伟武老师 胡伟武老师是计算机体系结构方向的大牛,推动了龙芯处理器的发展 学习体会: 学习追踪龙芯系列“工程流”论文,看看如何做工程,完成→完美 龙芯2号处理器几乎是工程向的论文,主要看一下实现…...
二一(GIT4)、echarts(地图)、黑马就业数据平台(学生页-增 删 改)
1. echarts 地图 echarts社区:makeapie echarts社区图表可视化案例 社区模板代码地址:自定义 tooltip-轮播 - category-work,series-map地图,tooltip提示框,visualMap视觉映射 - makeapie echarts社区图表可视化案例 // todo: 籍贯分布 地图 function…...
数据结构排序算法详解
数据结构排序算法详解 1、冒泡排序(Bubble Sort)2、选择排序(Selection Sort)2、插入排序(Insertion Sort)4、快速排序(Quick Sort) 1、冒泡排序(Bubble Sort)…...
使用kubeadm命令安装k8s
版本信息 kubernetesVersion: 1.28.01. 前期环境准备 先配置软件源可以安装kubeadm、kubelet、kubectl三个软件,不同的系统不同的安装方式,这里不列举了,自己找。然后要安装cri-dockerd,因为kubernetes从1.24版本不再支持docker的api,支持原生的containerd的api,可以使用…...
依托 Spring Boot框架,精铸高扩展性招聘信息管控系统
1 绪 论 1.1 课题背景与意义 在Internet高速发展的今天,计算机的应用几乎完全覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国,网上管…...
docker 部署 mysql 9.0.1
docker 如何部署 mysql 9 ,请看下面步骤: 1. 先看 mysql 官网 先点进去 8 版本的 Reference Manual 。 选择 9.0 版本的。 点到这里来看, 这里有一些基础的安装步骤,可以看一下。 - Basic Steps for MySQL Server Deployment wit…...
SQL:从某行开始,查询一定行数的语句
比如实现从第五行开始查询5行数据的SQL语句 不同数据库有不同的实现方式,下面是各大数据库的查询语句。 1. SQL Server(适用于 SQL Server 2012 及之后版本)、DB2、Oracle(适用12c及以上版本) 这几种数据库的实现方式…...
18. 模块
一、什么是模块 模块化 指将一个完成的程序分解为一个一个小的模块。通过将模块组合,来搭建一个完整的程序。如果不采用模块化,那么所有的代码将统一保存到一个文件中。采用模块化后,将程序分别编写到多个文件中。使用模块化后,我…...
GroundingDINO微调训练_训练日志解释
文章目录 1. 训练日志1. Epoch 和 Iteration2. Learning Rate(学习率)3. ETA(预计剩余时间)4. Time 和 Data Time5. Memory6. Gradient Norm(梯度范数)7. Loss(损失)8. Individual L…...
华为eNSP:VRRP多网关负载分担
一、实验拓扑及目的 二、实验命令及实验步骤 LSW1的配置命令 <Huawei>sy [Huawei]un in e [Huawei]sys S1 [S1]vlan batch 100 200 [S1]int g0/0/1 [S1-GigabitEthernet0/0/1]port link-type access [S1-GigabitEthernet0/0/1]port default vlan 100 [S1-GigabitEtherne…...
uni-app写的微信小程序如何实现账号密码登录后获取token,并且每天的第一次登录后都会直接获取参数而不是耀重新登录(1)
uni-app写的微信小程序如何实现账号密码登录后获取token(而token的有效器一般是30分钟,当页面在操作时token是不会过去,,离开页面第二天登录时token就是过期状态,因为记住了账号密码就不会操作再次登录,但是…...
【linux】(29)shell-变量和引号
Shell 脚本中有三种引号:双引号 "、单引号 和反引号 。它们有不同的作用。 双引号 " 双引号允许引用的字符串中包含变量和命令替换。 #!/bin/bash name"Alice" echo "Hello, $name!"单引号 单引号中的内容被原样引用࿰…...
Linux如何安装discuz
在Linux上安装Discuz!程序通常涉及以下步骤: 安装Web服务器(如Apache或Nginx)和数据库(如MySQL或PostgreSQL)。 下载Discuz!的最新版本。 将Discuz!文件上传到Web服务器的公共目录中。 根据README.md文件配置Discuz…...
SpringBoot如何使用EasyExcel实现表格导出(简洁快速入门版本)
前言 前面给大家介绍了动态表头的导入,这篇文章给大家介绍如何实现导出 前面给大家介绍了动态表头的导入,我们了解了如何通过EasyExcel灵活地读取结构不固定的Excel文件。这次,我们将目光转向数据导出——即如何将数据以Excel文件的形式输出…...
Python爬虫使用示例-保存诗人简介到csv文件中
一、获取资源 目标网址:(第一页) https://www.shicimingju.com/category/all(后续) https://www.shicimingju.com/category/all_2 https://www.shicimingju.com/category/all_3 ... https://www.shicimingju.com/ca…...
yocto的xxx.bb文件在什么时候会拷贝文件到build目录
在 Yocto 中,.bb 文件用于描述如何构建和安装一个软件包,而文件在构建过程中的拷贝操作通常会在某些特定的步骤中进行。具体来说,文件会在以下几个阶段被拷贝到 build 目录(或者更准确地说,拷贝到目标目录 ${D}&#x…...
Mysql定时数据库备份保姆级教程
目录 一、需要解决的问题 1、如何传输文件? 2、如何备份数据库? 3、如何建立一个定时任务? 二、实施步骤 1、建立SSH公钥,实现无密码登录 2、编写备份数据库脚本 3、编写定时任务 MySQL 是一种全球广泛使用的关系型数据库管理系统,它存储的数…...
使用 Grafana 展示多个TiDB集群的告警
作者: yangzhj 原文来源: https://tidb.net/blog/229e283c 背景 在日常运维工作中,我们有时需要将多个生产集群的告警信息展示在一起,统一集中观察和分析TiDB 集群的告警情况。 本文将通过 Grafana 的多数据源功能来将多个Ti…...
lnmp+discuz论坛 附实验:搭建discuz论坛
Inmpdiscuz论坛 Inmp: t: linux操作系统 nr: nginx前端页面 me: mysql数据库 账号密码,等等都是保存在这个数据库里面 p: php——nginx擅长处理的是静态页面,页面登录账户,需要请求到数据库,通过php把动态请求转发到数据库 n…...
AI时代的开发新纪元:云开发 Copilot
AI时代的开发新纪元:云开发 Copilot 目录 引言:AI时代的开发新纪元低代码与AI的完美融合云开发 Copilot的革命性意义云开发 Copilot 的核心特性解析 快速生成应用功能低代码与AI的深度结合 实战演练:云开发 Copilot 的应用案例 从需求到实现…...
探索 Java 中的 Bug 世界
在 Java 编程的旅程中,我们不可避免地会遇到各种 Bug。这些 Bug 可能会导致程序出现意外的行为、崩溃或者性能问题。了解 Java Bug 的类型、产生原因以及解决方法,对于提高我们的编程技能和开发出稳定可靠的应用程序至关重要。 一、Java Bug 的定义与分类…...
【C++】等差数列末项计算题解析及优化
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述与输入输出要求💯数学分析与公式推导公差的计算通项公式推导 💯示例解析解题步骤 💯程序实现与解析初版代码代码解析优点与不足…...
【LeetCode】55.跳跃游戏
文章目录 题目链接:题目描述:解题思路(贪心算法): 题目链接: 55.跳跃游戏 题目描述: 解题思路(贪心算法): 如果某一个位置的元素为N,表示后面N…...
linux基于systemd自启守护进程 systemctl自定义服务傻瓜式教程
系统服务 书接上文: linux自启任务详解 演示系统:ubuntu 20.04 开发部署项目的时候常常有这样的场景: 业务功能以后台服务的形式提供,部署完成后可以随着系统的重启而自动启动;服务异常挂掉后可以再次拉起 这个功能在ubuntu系统中通常由systemd提供 如果仅仅需要达成上述的场…...
SparkSQL编程实践
文章目录 SparkSQL编程实践1.1. 编程模型介绍1.2. SparkSQL编程1.2.1. 第三方库安装1.2.2. SparkSQL程序的结构1.2.3. SparkSQL执行模式1.2.3.1. Local模式1.2.3.2. 集群模式 1.2.4. 数据加载1.2.4.1. 通过RDD创建DataFrame1.2.4.2. 通过读取数据外部数据创建DataFrame标准读取…...
模型训练数据-MinerU一款Pdf转Markdown软件
模型训练数据-MinerU一款Pdf转Markdown软件-说明 简介: MinerU是什么 MinerU是上海人工智能实验室OpenDataLab团队推出的开源智能数据提取工具,专注于复杂PDF文档的高效解析与提取。MinerU能将包含图片、公式、表格等元素的多模态PDF文档转化为易于分析…...
shell基础用法
shell基础知识 shell中的多行注释 :<<EOF read echo $REPLY # read不指定变量,则默认写入$REPLY EOF # :<<EOF ...EOF 多行注释,EOF可以替换为!# 等文件目录和执行目录 echo $0$0 # ./demo.sh echo $0的realpath$(realpath…...
Redisson分布式锁
概览 个人博客源地址 Redisson不只是一个 Java Redis 客户端,它是一个以内存 Redis 服务器作为后端的处理 Java 对象(如 java.util.List, java.util.Map, java.util.Set, java.util.concurrent.locks.Lock 等)的一个框架。 Redisson提供了使用Redis的最简单和最…...
【C语言--趣味游戏系列】--电脑关机整蛊小游戏
前言: 老铁们,还是那句话,学习很苦游戏来补, 为了提高大家与朋友之间的友谊,博主在这里分享一个电脑关机的恶作剧小游戏,快拿去试试吧!!! 目录: 1.电脑关机代…...
C#实现一个HttpClient集成通义千问-开发前准备
集成一个在线大模型(如通义千问),来开发一个chat对话类型的ai应用,我需要先了解OpenAI的API文档,请求和返回的参数都是以相关接口文档的标准进行的 相关文档 OpenAI API文档 https://platform.openai.com/docs/api-…...
二叉树优选算法(一)
一、根据二叉树创建字符串 题目介绍: 给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需…...
单片机C51--笔记8-STC89C51RC/RD-IIC协议
一、概述 IIC全称Inter-Integrated Circuit (集成电路总线) 是由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。IIC属于半双 工同步通信方式。 特点 简单性和有效性。 由于接口直接在组件之上,因此IIC总线占用的空间非常小…...
HttpUtil的get和post请求
Http工具类 import org.apache.http.Consts; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.ht…...
leetcode 二进制数转字符串
1.题目要求: 2.题目代码: class Solution { public:string printBin(double num) {string result;double compare_value 1.0;//先给把0和.赋值给result;result.push_back(0);result.push_back(.);while(result.size() < 33){//利用十进制转换成二进制的方法//1.先给num …...
前端项目使用gitlab-cicd+docker实现自动化部署
GitLab CI/CD 是一个强大的工具,可以实现项目的自动化部署流程,从代码提交到部署只需几个步骤。本文将带你配置 GitLab CI/CD 完成一个前端项目的自动化部署。 前言 为什么使用cicddocker? 目前我们公司开发环境使用的shell脚本部署&#…...
【Linux】进程
🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 一、冯诺依曼体系结构 🌟系统调用和库函数概念 二、操作系统OS 三、进程 🌟查看进程 🌟通过系统调用获取进程标示符 🌟通过系统调用创…...
transformers生成式对话机器人
简介 生成式对话机器人是一种先进的人工智能系统,它能够通过学习大量的自然语言数据来模拟人类进行开放、连贯且创造性的对话。与基于规则或检索式的聊天机器人不同,生成式对话机器人并不局限于预定义的回答集,而是可以根据对话上下文动态地…...
Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战
Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战 前言1.何为Text2SQL(NL2sql)2.Text2SQL结构与挑战3.金融领域实际业务场景4.注意事项5.总结 前言 随着信息技术的迅猛发展,人机交互的方式也在不断演进。…...
C# 关于加密技术以及应用(二)
AES(Advanced Encryption Standard)和 RSA(Rivest-Shamir-Adleman)是两种不同的加密算法,它们各自有特定的使用场景和优势。下面是它们的主要区别和适用场景: AES(高级加密标准) 特…...
四十四:Web如何关闭会话
在Web应用中,关闭会话(Session Termination)是一个重要的机制,用于确保用户的会话状态被安全地终止。无论是用户主动退出登录还是因超时被动登出,正确地管理会话关闭有助于提升安全性并释放服务器资源。 一、为什么需…...
在wsl2中安装archlinux
在之前的博客中,我介绍了如何在虚拟机或者真实机上安装archlinux并且进行一定的配置,但是实际上Linux不管怎么配置在日常使用中都没有Windows简单便利,在开发有关Linux的程序时过去用虚拟机或者直接在Windows上使用ssh在远程服务器上进行开发…...
在Goland中对goroutine协程断点调试
在Goland中对goroutine协程断点调试 环境: Goland 参考了 chatgpt 的回复 进行断点调试的代码 package mainimport ("fmt""sync""time" )// worker 模拟处理任务 func worker(id int, wg *sync.WaitGroup) {defer wg.Done() // 确保任务完成后…...
最长连续递增序列
问题分解 1:要求 要求找到最长的连续递增子序列,即在原数组中位置连续且数值严格递增的一段序列 2:输入和输出 输入是一个未经排序的整数数组nums 输出是该数组中最长连续递增子序列的长度 3:边界调节 数组为空则长度为0 …...
apt 包 源 的维护 和缓存 命令
APT 包源维护命令 更新软件包列表: sudo apt update:从配置的软件源中获取最新的软件包信息。这是安装、升级或删除软件包前通常要执行的步骤,以确保使用的是最新的软件包信息。 升级软件包: sudo apt upgrade:升级系…...
【排序方法的总结】
在数据结构中常见的排序方法有: 插入排序、交换排序、选择排序、归并排序和基数排序等。 插入排序 特点: 简单直观,对于小规模的数据排序效率较高。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后…...
工作中常用springboot启动后执行的方法
前言: 工作中难免会遇到一些,程序启动之后需要提前执行的需求。 例如: 初始化缓存:在启动时加载必要的缓存数据。定时任务创建或启动:程序启动后创建或启动定时任务。程序启动完成通知:程序启动完成后通…...