IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> android将Gradle从3.x升级到7.x的过程 -> 正文阅读

[移动开发]android将Gradle从3.x升级到7.x的过程

这些天为了在老的项目上使用Compose,于是将Gradle从3.3.3 升级到了7.0.4,其中经历了百来个Error的折磨,一点一点的解决后,终于成功run起了项目,将踩过的坑分享出来,以便同样需求的人参考。

1:依赖方式的改变:

buildscript或者allProjects,老的项目依赖了许多的jecenter仓库与maven仓库,在gradle升级后,很多时候会爆仓库不安全错误,其中有LIKE(HTTPS)字样,需要将地址从http改为https,例如:

maven { url "http://jitpack.io" }  --> maven { url "https://jitpack.io" }

而有些仓库地址 只有http的版本时,需要添加allowInsecureProtocol去绕过检测,如:

maven {
    allowInsecureProtocol(true)
    url "http://mvn.mob.com/android"
}

2:compileSdkVersion与targetSdkVersion版本改变

这个根据error提示,改成需求的队友版本即可,不过参与编译的只有compileSdkVersion,所以根据实际情况来就可以了,注意去sdkmanager中下载需要的版本

3:一些语法上的更改

compile改为implementation或者api,implementation可以认为private,只允许当前model使用的依赖,api是public,别的model依赖当前包后,如果当前包依赖申明为api,则后者默认也依赖了这个包(有些扰,简而言之,implementation依赖的包体只能在当前model使用,api依赖的包体,可以当这个model被依赖时,被使用)。

apply plugin ‘xxx’ 更改为 plugins{ id 'xxx' id'xxx'}方式

4:当找不到sdk依赖时

有一些厂家,当gradle升级后,你在他的仓库里找不到依赖路径的包(例如阿里百川),而你出于各种考虑并不想去升级这一部分的sdk,且他的仓库已关闭,你获取不到老版本的sdk,这时你可以尝试下我的思路->

?????????(1):运行老版本工程,sync工程,获得申明的各种sdk

? ? ? ? ?(2):在gradle缓存中,找到对应包名的aar或者jar,将其移动至升级工程中,然后以本地化依赖的方式进行,gradle缓存地址,以mac为例在.gradle/caches/modules-2/file-2.1中,其中 .gradle为隐藏文件,command+shift+. 这个组合按键可显示出,然后根据aar对应的包名去寻找对应的aar包体,例如:

????????

?以上能解决大部分sdk找不到的问题

5:gradle.properties中有一些以前的配置不再需要,可进行删除,例如:

com.android.build.gradle.overridePathCheck=true
android.enableD8.desugaring=false

6: gradleJDK依赖版本,通常都会从 1.8 改为11,如下->

?

?

7:一些其他的问题:

可能会存在一些其他的sdk包体编译报错或者运行报错的问题,这时一般error信息会比较清晰的展示出来,例如github上面的sdk错误,很多时候在其仓库的issues中都会存在,找到并修复就好,

还有一些硬性的plugin找不到的,这时基本只能去其官网或者仓库,升级到新版本再编译。

总结:升级不易,且行且珍惜(坑太多了)?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:36:39  更:2022-03-30 18:38:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:35:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码