当前位置: 首页 > news >正文

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…...

在Node.js中如何使用TypeScript

第一步:创建一个Node.js项目的package.json文件 npm init -y第二步:添加TypeScript、添加node.d.ts npm install typescript -D npm install types/node -D第三步:初始化一个tsconfig.json文件 npx tsc --init --rootDir src --outDir lib…...

链表两数加python

一、问题描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个…...

免费的可以薅羊毛的cloudflare反向代理教程

cloudflare-reverse-proxy 项目代码: https://github.com/EASTCATV/cloudflare-reverse-proxy 本项目是cloudflare反向代理。在cloudflare网站中新建worker,把worker.js文件中的内容复制进去即可使用。 使用方法为在任意url前面加上https://你的域名/proxy/ 即可…...

【每日刷题】Day155

【每日刷题】Day155 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. LCR 108. 单词接龙 - 力扣(LeetCode) 2. 675. 为高尔夫球比赛砍树 - 力扣(…...

EXCEL延迟退休公式

如图: A B为手工输入 C2EOMONTH(A2,B2*12) D2EOMONTH(C2,IF(C2>DATEVALUE("2025-1-1"),INT((DATEDIF(DATEVALUE("2025-1-1"),C2,"m")4)/4),0)) E2EOMONTH(A2,B2*12IF(EOMONTH(A2,B2*12)>DATEVALUE("2025-1-1"),INT(…...

开源对象存储新选择:在Docker上部署MinIO并实现远程管理

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼…...

Spring Cloud生态圈

目录 Spring Cloud生态圈 核心组件 其他组件 总结 Spring Cloud Alibaba生态圈 核心组件 其他特性 Spring Cloud生态圈 Spring Cloud生态圈是一个为微服务架构提供全方位支持的解决方案集合。它涵盖了多个关键组件和服务,旨在帮助开发者快速构建、部署和管理…...

AI视觉小车基础--4.舵机控制(云台控制)

一、实验准备 控制连接在扩展板上的舵机。如下图所示,按键KEY1为板载元器件,所以不需要外接其他设备。 二、运行代码 # Import the Raspbot library import time from Raspbot_Lib import Raspbot from ipywidgets import interact import ipywidgets a…...

【Rust中的项目管理】

Rust中的项目管理 前言Package,Crate,Module &use ,Path通过代码示例解释 Crate,Module ,use,Path创建一个package:代码组织化skin.rs 中的代码struct & enum 相对路径和绝对路径引用同…...

【原创】如何备份和还原Ubuntu系统,非常详细!!

前言 我在虚拟机装了一个xfce4的Ubuntu桌面版,外加输入法、IDEA等,我想将这个虚拟机里的系统直接搬到物理机中,那我可以省的再重新装一遍、配置xfce4桌面、修改一堆快捷键还有配置idea了,那直接说干就干。 本教程基于Ubuntu24.0…...

成都栩熙酷网络科技抖音小店是真的

近年来,随着短视频平台的崛起,抖音小店作为一种新兴的购物模式,迅速吸引了大量消费者和商家的关注。在这一潮流中,成都栩熙酷网络科技有限公司(以下简称“栩熙酷”)凭借其敏锐的市场洞察力和强大的技术实力…...

Python 爬虫数据清洗与存储:基础教程

Python 爬虫数据清洗与存储:基础教程 在爬虫数据获取完成后,数据往往是“原始”的,不适合直接使用。清洗和存储是将爬取到的原始数据转化为有用信息的关键步骤。本文将系统地介绍 Python 中进行数据清洗与存储的基本方法,帮助新手…...

ssm122基于Java的高校教学业绩信息管理系统+jsp(论文+源码)_kaic

毕 业 设 计(论 文) 题目:高校教学业绩信息管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本高校教学…...

Java 基础知识

一.泛型编程 1. 泛型的概念和作用是什么? 概念:泛型(Generics)是在 JDK 5.0 引入的新特性,允许在定义类、接口和方法时使用类型参数。类型参数在使用时被具体的类型替换。作用: 类型安全性:避…...

深入探索 React Hooks:原理、用法与性能优化全解

一、引言 在现代 React 开发领域,Hooks 已成为不可或缺的一部分,赋予函数组件强大功能,使其能胜任复杂任务。本文将全面剖析 React Hooks,助您深入理解并熟练运用。 二、React Hooks 是什么 (一)Hooks 出现的背景 早期 React 主要依赖类组件,其通过this.state管理状…...

python中父类和子类继承学习

python为啥要使用继承 1. **代码复用**:子类可以继承父类的方法和属性,避免了重复编写相同的代码,提高了代码的复用性。 2. **建立层次结构**:通过继承可以清晰地表示类之间的层次关系,使代码结构更有条理。 3. **扩展…...

Linux——GPIO输入输出裸机实验

学习了正点原子Linux环境下的GPIO的输入输出的裸机实验学习,现在进行一下小结: 启动文件start.S的编写 .global _start .global _bss_start _bss_start:.word __bss_start.global _bss_end _bss_end:.word __bss_end_start:/*设置处理器进入SVC模式*/m…...

华为鸿蒙HarmonyOS NEXT升级HiCar:打造未来出行新体验

随着科技的不断进步,智能出行已成为我们生活中不可或缺的一部分。华为凭借其在智能科技领域的深厚积累,推出了全新的鸿蒙HarmonyOS NEXT系统,旨在为用户打造一个“人车家”的无缝协同出行体验。这一系统的核心亮点之一,就是其内置…...

【项目组件】第三方库——websocketpp

目录 第三方协议:websocket websocket简介 websocket特点 websocket协议切换 websocket协议格式段 websocketpp库介绍 endpoint server connection websocketpp库搭建服务器流程 基本框架实现 业务处理回调函数的实现 http_callback open_callback …...

计算机23级数据结构上机实验(第3-4周)

A 二叉树删除子树 编写程序对给定二叉树执行若干次删除子树操作,输出每次删除子树后剩余二叉树的中根序列。二叉树结点的数据域值为不等于0的整数。每次删除操作是在上一次删除操作后剩下的二叉树上执行。 输入格式: 输入第1行为一组用空格间隔的整数,表…...

【大数据学习 | HBASE高级】region split机制和策略

1. region split机制 ​ HRegionServer拆分region的步骤是,先将该region下线,然后拆分,将其子region加入到hbase:meta表中,再将他们加入到原本的HRegionServer中,最后汇报Master。 split前:hbase:meta表有…...

flink实战 -- flink SQL 实现列转行

在 SQL 任务里面经常会遇到一列转多行的需求,下面就来总结一下在 Flink SQL 里面如何实现列转行的,先来看下面的一个具体案例. 需求 原始数据格式如下: namedatatest[{"content_type":"flink","url":"111"},{"content_type&quo…...

React中右击出现自定弹窗

前言 在react中点击右键,完成阻止浏览器的默认行为,完成自定义的悬浮框(Menu菜单). 版本 "react": "^18.2.0", "umijs/route-utils": "^4.0.1", "antd": "^5.18.1", "ant-design/pro-components": &q…...

Unity类银河战士恶魔城学习总结(P128 Switch UI with KeyBoard用键盘切换UI)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了用键盘切换角色UI,技能树UI,合成面板UI和设置UI UI.cs 1. 变量与字段 characterUI,skill…...

基于Springboot+微信小程序的急救常识学习系统 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 该系统…...

【云计算解决方案面试整理】3-7主流云计算平台、云计算架构、安全防护

准备面云计算解决方案的岗位,整理了一些,也请大佬们指点。 文档分为 云计算基础概念、云计算技术原理、主流云计算平台(以天翼云为例)、云计算架构(弹性设计、高可用设计、高性能设计)、安全防护几个方面。 三、主流云计算平台 1.阿里云云计算平台 强大的计算能力:拥有…...

数据库范式、MySQL 架构、算法与树的深入解析

一、数据库范式 在数据库设计中,范式是一系列规则,用于确保数据的组织和存储具有良好的结构、完整性以及最小化的数据冗余。如果不遵循范式设计,数据可能会以平铺式罗列,仅使用冒号、分号等简单分隔。这种方式存在诸多弊端&#…...

设计模式之责任链模式(Chain Of Responsibility)

一、责任链模式介绍 1、责任链模式介绍 职责链模式(chain of responsibility pattern) 定义: 避免将一个请求的发送者与接收者耦合在 一起,让多个对象都有机会处理请求。将接收请求的对象连接成一条链,并且沿着这条链 传递请求,直到有一个对…...

SQLite 全文检索:快速高效的文本查询方案

文章目录 什么是全文检索?如何启用 FTS?插入数据执行全文检索关联原始表与 FTS 表数据更新结论 说明: 本文以博客内容全文检索为例。 什么是全文检索? 全文检索是指对文本数据进行索引和查询的一种技术。与常规的 LIKE 查询不同&#xff0c…...