原文地址: 记一次Android项目升级Kotlin版本(1.5 -> 1.7) - Stars-One的杂货小窝

由于自己的历史项目Kotlin版本比较老了,之前已经升级过一次了(1.4->1.5),那次升级就比较容易,没遇到什么坑

这次因为要开个新项目,用到了别人的三方库,加了依赖引用后跑项目报错,提示都是要求Kotlin版本需要是1.7,于是便是折腾了下

升级步骤

首先,说下我的开发环境,用的Android Studio Chipmunk版本

1.升级Kotlin版本

我们进入到项目里的setting.gradle,修改kotlin版本为1.7.10即可

为什么知道是1.7.10版本,因为IDE有提示...

2.升级Gradle

改了Kotlin版本跑项目,不出所料报错了

编译的错误说明Gradle版本不对,所以我就先改成了7.2版本(原先是6.6版本)

知道gradle文件夹下的gradle.properties,将里面的地址改为7.2版本

distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip

至于具体的Gradle版本,还得看Android Gradle插件版本(AGP版本)支持,所以看下一节内容说明

3.升级Android Gradle插件版本

这里实际上就是所说的AGP版本

编译出现了下面的错误

Execution failed for task ':app:compileDebugJavaWithJavac'.
> Failed to calculate the value of task ':app:compileDebugJavaWithJavac' property 'options.generatedSourceOutputDirectory'.
> Querying the mapped value of map(java.io.File property(org.gradle.api.file.Directory, fixed(class org.gradle.api.internal.file.DefaultFilePropertyFactory$FixedDirectory, D:\project\android\xn-music-downloader\app\build\generated\ap_generated_sources\debug\out)) org.gradle.api.internal.file.DefaultFilePropertyFactory$ToFileTransformer@26f5c67c) before task ':app:compileDebugJavaWithJavac' has completed is not supported

编译出现这个问题有所懵逼的,于是问了下万能的Chatgpt,给出了以下建议

想着第三点可能是关键,于是就是尝试去修改了下,之前项目是4.0.0版本,根据ChatGPT的建议改成4.3.0没有起到作用

于是想着是不是要搞高版本,那高版本好应该是多少呢?我们可以去官网上的说明找到下图的说明

Android Gradle 插件版本说明  |  Android 开发者  |  Android Developers

看着我的花栗鼠版本的话,最高支持7.2,但是实际改了之后发现依赖根本找不到,于是版本号尝试加多了个0就可以成功依赖了

我尝试了7.2.0,然后给了提示

然后我们将gradle版本改为7.3.3版本即可完成

最后,由于Gradle版本7.x开始,都需要JDK11才能编译成功,所以我们还得去设置修改下JDK(因为我是从6.x版本升级上来的)

记一次Android项目升级Kotlin版本(1.5 -> 1.7)的更多相关文章

  1. Xamarin Android项目提示SDK版本太老

    Xamarin Android项目提示SDK版本太老 错误信息:The installed Android SDK is too old.Version 24.3.4 or newer is requ ...

  2. 记一次Android studio升级之后的坑

    像往常一样打开Android studio,但这次它提示我升级!说是什么为了更好的体验,在好奇心的驱使下,我毅然地点击了“update”按钮.升级之后,编译项目,报出了N多个error,我的心都慌完! ...

  3. 初次尝试用Kotlin实现Android项目

    Kotlin: The Swift of Android 起这个文内标题的原因很简单,就是对Kotlin抱有希望--能使Android的开发更简洁.高效及安全.知道Kotlin是从简书的一篇短文,越来 ...

  4. Kotlin Android项目静态检查工具的使用

    Kotlin Android项目静态检查工具的使用 Kotlin Android项目可用的静态检查工具: Android官方的Lint, 第三方的ktlint和detekt. 静态检查工具 静态检查工 ...

  5. 用Kotlin创建第一个Android项目(KAD 01)

    原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...

  6. Android项目开发填坑记-Fragment的onBackPressed

    Github版 CSDN版 知识背景 Fragment在当前的Android开发中,有两种引用方式,一个是 Android 3.0 时加入的,一个是supportV4包中的.这里简称为Fragment ...

  7. Android项目开发填坑记-Fragment的onAttach

    背景 现在Android开发多使用一个Activity管理多个Fragment进行开发,不免需要两者相互传递数据,一般是给Fragment添加回调接口,让Activity继承并实现. 回调接口一般都写 ...

  8. Android项目开发填坑记-so文件引发的攻坚战

    故事的最初 我负责的项目A要求有播放在线视频的功能,当时从别人的聊天记录的一瞥中发现百度有相关的SDK,当时找到的是Baidu-T5Player-SDK-Android-1.4s,项目中Demo的so ...

  9. Android Studio中创建Kotlin For Android项目

    Kotlin俗称Android中的Swift,它是Jetbrains公司开发的基于JVM的一门语言,JetBrains公司可能大家并不熟悉,不过相信IntelliJ IDE大家一定知道,Android ...

  10. C# Xamarin For Android自动升级项目实战

    一.课程介绍 “明人不说暗话,跟着阿笨一起玩Xamarin”,本次分享课程阿笨将带来大家一起学习Xamarin For Android系列<C# Xamarin For Android自动升级项 ...

随机推荐

  1. 2023-01-13:joxit/docker-registry-ui是registry的web界面工具之一。请问部署在k3s中,yaml如何写?

    2023-01-13:joxit/docker-registry-ui是registry的web界面工具之一.请问部署在k3s中,yaml如何写? 答案2023-01-13: yaml如下: apiV ...

  2. 2022-10-25:在一个 2 * 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示。一次 移动 定义为选择 0 与一个相邻的数字(上下左右)进行交换.

    2022-10-25:在一个 2 * 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示.一次 移动 定义为选择 0 与一个相邻的数字(上下左右)进行交换. ...

  3. Node 调试利器,前端、Node 开发必备 - VSCode JS Debug Terminal

    经常看到有同学抱怨 Node 调试麻烦或者是搞不清怎么调试各种脚本.Jest.Webpack 等等,而偶尔看到的调试相关的文章又全都是在写 inspect.launch.json 这些方案,其实有一定 ...

  4. 卸载与重装Vue3及项目文件重创错误

    卸载与重装Vue3及项目文件的重创错误 首先先来个vue的卸载命令,直接win+R打开cmd npm uninstall -g @vue/cli   或     yarn global remove ...

  5. 一篇文章告诉你什么是Java内存模型

    在上篇 并发编程Bug起源:可见性.有序性和原子性问题,介绍了操作系统为了提示运行速度,做了各种优化,同时也带来数据的并发问题, 定义 在单线程系统中,代码按照顺序从上往下顺序执行,执行不会出现问题. ...

  6. Error: Cannot find module ‘webpack-cli/bin/config-yargs‘

    今配置一个webpack-dev-server进行服务端渲染时老是不正确 npm run dev 就崩了 起初的配置为 "devDependencies": { "web ...

  7. Python生成随机验证

    Python生成随机验证码   Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 fr ...

  8. RStuido Server 选择不同的 R 版本(conda 中的不同 R 版本)

    自从上一次服务器重装系统之后,总感觉缺少了一些东西,安装R包很多依赖库报错,也可以解决,但总是存在,烦. 一天,一个同事问我说ggpubr包安装不成功,我就自己试了一下,真的是--安装不成功. 当你到 ...

  9. Google Chrome 超详细使用教程

    由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中的链接. 调查统计机构 NetMarketShare 发布最新的 7 月份报告,在全球浏览器市场,谷歌 ...

  10. 使用CosmosDB进行大规模数据的实时数据处理和流式传输

    目录 使用 Cosmos DB 进行大规模数据的实时数据处理和流式传输 背景介绍 文章目的 目标受众 技术原理及概念 基本概念解释 技术原理介绍 相关技术比较 实现步骤与流程 准备工作:环境配置与依赖 ...