热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安卓集成新版推送SDK与旧版本账号SDK发生依赖冲突,如何解决?

​ 1、问题描述一开始项目中是集成了华为登录SDK,如下图所示:​现在想要接入华为推送SDK,如下图所示:​结果集成之后出现了依赖冲突的问题,报错如下图中所示:​ 2、问题分析im

​ 1、问题描述

一开始项目中是集成了华为登录SDK,如下图所示:

cke_300.png

现在想要接入华为推送SDK,如下图所示:

cke_626.png

结果集成之后出现了依赖冲突的问题,报错如下图中所示:

cke_1011.png

 


2、问题分析

implementation (name: 'hwid-2.6.3.306', ext: 'aar')

implementation (name: 'base-2.6.3.306', ext: 'aar')

上面的这个华为登录是很久之前的版本,现在2.x版本已经废弃了,所以跟新版的push sdk是没有办法互通的。如果您需要集成

implementation 'com.huawei.hms:push:6.3.0.304'版本,由于push和hwid都对base有依赖关系,因此老的aar版本是没有办法支持的。

 


3、解决方案

通过上面第二个步骤的分析,不难发现想要解决上面的依赖冲突是不行了,旧版和新版的api也是不匹配的,那我们只有升级hwid的版本了。

①、升级hwid版本

hwid和base这两个依赖包不要使用aar的方式引入,将这两个aar包删除,然后使用开发者联盟官网文档中的Maven仓的方式对新版本进行依赖,官网文档的链接如下:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/as-integration-hms-core-sdk-0000001050436235#section1339835185714

添加依赖的方式如下(push会自动引入base的版本,不需要单独添加):

cke_3021.png

通过上面的步骤,在gradle编译完成之后,我们查看安卓项目目录结构中的External Libraries,可以发现已经正常添加了账号和推送的依赖包:

cke_4478.png

②、更新api

在升级完SDK之后,还需要把项目中旧版本的相关功能的实现过程进行替换,参考文档如下所示:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/introduction-0000001050048870

可以参考文档中的相关登录接口进行登录:

cke_6155.png

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh



推荐阅读
  • 详细指南:使用IntelliJ IDEA构建多模块Maven项目
    本文在前两篇文章的基础上,进一步指导读者如何在IntelliJ IDEA中创建和配置多模块Maven项目。通过详细的步骤说明,帮助读者掌握项目模块化管理的方法。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 本文详细介绍了JSP(Java Server Pages)的九大内置对象及其功能,探讨了JSP与Servlet之间的关系及差异,并提供了实际编码示例。此外,还讨论了网页开发中常见的编码转换问题以及JSP的两种页面跳转方式。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 本文详细介绍了如何正确安装Java EE SDK,并解决在安装过程中可能遇到的问题,特别是关于servlet代码在Apache Tomcat 10中无法运行的情况。 ... [详细]
  • LCUI 2.1.0 版本现已推出,这是一个用 C 语言编写的图形用户界面开发库,适合创建轻量级的桌面应用程序。此次更新包括多项修复和功能增强,并正式宣布将启动 Android 支持的开发计划。 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 深入解析RDMA中的队列对(Queue Pair)
    本文将详细探讨RDMA架构中的关键组件——队列对(Queue Pair,简称QP),包括其基本概念、硬件与软件实现、QPC的作用、QPN的分配机制以及用户接口和状态机。通过这些内容,读者可以更全面地理解QP在RDMA通信中的重要性和工作原理。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • Python3 中使用 lxml 模块解析 XPath 数据详解
    XPath 是一种用于在 XML 文档中查找信息的路径语言,同样适用于 HTML 文件的搜索。本文将详细介绍如何利用 Python 的 lxml 模块通过 XPath 技术高效地解析和抓取网页数据。 ... [详细]
author-avatar
我爱你2602912303
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有