如何解决 Android Studio 三方库依赖冲突问题

简介: 今天我们不继续说面试,讲点其他的,有一些废话,关注标题的请直接拉到下面。近期呀,笔者除了整理 面试系列,其实还在做一件事,就是在费心费力地准备把 AiYaGirl 进行重构。

今天我们不继续说面试,讲点其他的,有一些废话,关注标题的请直接拉到下面。

近期呀,笔者除了整理 面试系列,其实还在做一件事,就是在费心费力地准备把 AiYaGirl 进行重构。

AiYaGirl 是一款涵盖 Retrofit & MVP & RxJava 开发体系的 App ,主要采用代码家的 干货集中营 做数据来源,知识点不多,你选择了我,就是我的幸运

直接看看之前的效果图吧。


nanchen.gif

由于有 MVP 的地方,最好还是加上 Dagger2,所以本次重构主要是加入 Dagger2 、RxJava2 的升级,以及各种性能上的优化。

但并不是所有人都喜欢 Dagger2,所以我将保留之前的 1.x 版本,本次重构不会覆盖之前的页面,而是在 GitHub 仓库中新建了一个 mvp-dagger 分支。

期待以后的路上有你的陪伴和交流,因为我也曾遇到各种棘手的问题,到处询问而得不到答案。那个时候的我,也如现在的你,而我,还在这条路上默默前行。

说说标题上的事儿

重构的第一件事,就是对库进行了升级。可当我开开心心地把库一个一个更新到最新版,并 build 的时候,发现直接炸了。

大家更新库,得先看官方用法是否更新,更新需谨慎。

nanchen
nanchen

support 库出现了 26.1.0 和 26.0.2 两个版本,而我的 App 下是自己只依赖了 26.0.2 的。

很明显的库兼容性错误,但完全找不着头脑,不知道是哪儿的锅。是呀,这么多库,我哪儿知道是哪个库的毛病。

nanchen

一番倒腾后,采用命令行 gradlew -q app:dependencies 找出了问题。

nanchen

咦?这个库?

到这个库的官方地址一看,确实如此。

nanchen

于是,直接修正了版本,编译成功,完美。

应一些读者的要求,目前个人比较常用的 Gradle 命令。

这肯定是不完整的,因为这只是我平时用的比较多的。其实也还好,命令行习惯了是真的不想手动操作了。

注意:我是 windows 所以我下面全是针对 windows 操作系统的。如果是 Linux / Mac 请直接用 ./ 前缀。

  • gradlew build
    检查依赖并编译打包,即使你采用了多渠道打包,依然可以,可以生成所有的 apk。(涵盖 release 和 dubug)

  • gradlew clean
    这没啥好说的,就跟 Android Studio 下面的 clean 差不多。

  • gradlew installDebug
    编译并打包 debug 包。

  • gradlew -v
    查看构建的版本。

  • gradlew build --info
    编译并打印日志。

  • gradlew dependencies --info
    查看详细的依赖信息

  • gradlew assembleRelease
    命令行打包不签名的release包
    生活中总是会遇到各种各样奇怪的问题,但路,我们还得继续走下去。

做不完的开源,写不完的矫情。欢迎扫描下方二维码或者公众号搜索「nanchen」关注我的微信公众号,目前多运营 Android ,尽自己所能为你提升。如果你喜欢,为我点赞分享吧~


nanchen
目录
相关文章
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
239 1
|
1月前
|
Java Unix Linux
Android Studio中Terminal运行./gradlew clean build提示错误信息
遇到 `./gradlew clean build`命令执行出错时,首先应检查错误信息的具体内容,这通常会指向问题的根源。从权限、环境配置、依赖下载、版本兼容性到项目配置本身,逐一排查并应用相应的解决措施。记住,保持耐心,逐步解决问题,往往复杂问题都是由简单原因引起的。
231 2
|
2月前
|
开发工具 Android开发 git
Android实战之组件化中如何进行版本控制和依赖管理
本文介绍了 Git Submodules 的功能及其在组件化开发中的应用。Submodules 允许将一个 Git 仓库作为另一个仓库的子目录,有助于保持模块独立、代码重用和版本控制。虽然存在一些缺点,如增加复杂性和初始化时间,但通过最佳实践可以有效利用其优势。
39 3
|
2月前
|
XML IDE 开发工具
🔧Android Studio高级技巧大公开!效率翻倍,编码不再枯燥无味!🛠️
【9月更文挑战第11天】在软件开发领域,Android Studio凭借其强大的功能成为Android开发者的首选IDE。本文将揭示一些提升开发效率的高级技巧,包括自定义代码模板、重构工具、高级调试技巧及多模块架构。通过对比传统方法,这些技巧不仅能简化编码流程,还能显著提高生产力。例如,自定义模板可一键插入常用代码块;重构工具能智能分析并安全执行代码更改;高级调试技巧如条件断点有助于快速定位问题;多模块架构则提升了大型项目的可维护性和团队协作效率。掌握这些技巧,将使你的开发之旅更加高效与愉悦。
64 5
|
3月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
56 1
|
3月前
|
Android开发
Android Studio: 解决Gradle sync failed 错误
本文介绍了解决Android Studio中出现的Gradle同步失败错误的步骤,包括从`gradle-wrapper.properties`文件中获取Gradle的下载链接,手动下载Gradle压缩包,并替换默认下载路径中的临时文件,然后重新触发Android Studio的"Try Again"来完成同步。
1325 0
Android Studio: 解决Gradle sync failed 错误
|
3月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
132 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
3月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
233 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
3月前
|
Java 网络安全 开发工具
UNITY与安卓⭐一、Android Studio初始设置
UNITY与安卓⭐一、Android Studio初始设置
|
3月前
|
Java 开发工具 Android开发
Android Studio利用Build.gradle导入Git commit ID、Git Branch、User等版本信息
本文介绍了在Android Studio项目中通过修改`build.gradle`脚本来自动获取并添加Git的commit ID、branch名称和用户信息到BuildConfig类中,从而实现在编译时将这些版本信息加入到APK中的方法。
71 0