当前位置: 首页 > 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 …...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

C# winform教程(二)----checkbox

一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...

JS红宝书笔记 - 3.3 变量

要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...