Android Studio 2023.2.1版本 kotlin编译报错踩坑

1、需求

     由于最近在整理项目,做一些公共基础组件Maven仓库封装,由于之前项目jar包和kotlin版本很老,kotlin版本1.3.72版本 Gradle使用5.4.1  Android Studio版本是2023.2.1,分别依次顺序如下图所示

如下图所示 

2、分析编译报错日志

   由于公共基础组件库封装差不多,这时候需要讲之前一些代码删除,于是我兴高采烈导入之前项目到As版本,我还用了翻墙梯子,为了加快gradle版本快速构建。哈哈,此时等待5-10分钟,忽然天下大雨 ,我是谁,我在那里?突然想起昨天小米Su7发布会一个段子,那天晚上,大雨滂沱,一辆众泰SR9和一辆小米su7砰的一声相撞了,但两车的车主却迟迟不敢下车,双方都以为撞了保时捷,最后发现真相,二人相拥而泣,相见恨晚,遂引为知音。如有雷同纯属巧合。此时出现这样一个不和谐画面,如下图所示。请看大屏幕。

啥情况,兄弟们,这怎么看起来这么熟悉,添加依赖jar包冲突?还是说kotlin版本不兼容。上面日志说当前是1.7.1 ?你很会打吗?会打有个屁用,出来混必须有背景有实力,我叫阿杰。

接着我又换回之前as 版本  我不信邪

然后有sync now 一下 出现下面的非静止画面  如下图所示

于是去网上复习下kotlin与gradle插件 以及jdk对应版本 如下图

3、修改Gradle和KotIin版本

    开始尝试修改 kotin1.7.10  Gradle7.2 版本  AGP Gradle插件版本 4.1.2  以及版本gradle路径 

然后再Sync now一下,我再build尝试打包如下图所示。

此时我的心情,谁能懂,苏喂苏喂。此时已经凌晨3点多了。完全没有睡意。干就完了。

啥情况,兄弟们搞了这么久,就是kotlin与Gradle版本不匹配,那我走?

4、总结

    1、移植旧项目一定要考虑依赖jar包冲突尝试使用exclude关键字)具体自行百度

    2、Gradle版本 Gradle插件AGP/JDK/NDK/Kotlin版本都要认真检查 了解下如何搭配的,特别重要哈 

   3、学会使用交叉验证多个不同as版本都验证下排除编译环境问题

   4、多尝试多找StackOverFlow文章,还是有含金量,英文看不懂就建议找个英语老师学习哈

到这里踩坑基本结束 总而言之要细心,这种一般都不是技术问题(搞到凌晨三点才解决的,不怕大家笑话),找到问题根源,不要逃避问题,需要就是耐心!耐心!耐心!

感谢 

https://www.jianshu.com/p/4042fd18f9fa

Android Gradle 插件 8.3 版本说明  |  Android Studio  |  Android Developers

Kotlin 的新特性 · Kotlin 官方文档 中文版

转载请注明出处Android Studio 2023.2.1版本 kotlin编译报错踩坑-CSDN博客,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/500809.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

动态内存管理+柔性数组

动态内存存在的意义 C语言是一种过程式编程语言,提供了底层访问能力和丰富的功能,广泛应用于操作系统、嵌入式系统、硬件驱动程序等领域。C语言的动态内存管理主要是通过malloc()、calloc()、realloc()和free()这几个标准库函数来实现的。 理解动态内存…

【御控物联】JavaScript JSON结构转换(12):对象To数组——键值互换

文章目录 一、JSON结构转换是什么?二、核心构件之转换映射三、案例之《JSON对象 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换…

智慧乡村建设新篇章:数字乡村引领农村发展新时代

目录 一、智慧乡村的内涵与建设的必要性 二、智慧乡村建设的路径探索 (一)加强信息基础设施建设,夯实智慧乡村发展基础 (二)推动农业智能化升级,提升农业生产效率和质量 (三)推…

Flask Python:请求上下文和应用上下文

请求上下文和应用上下文详解 一、背景二、什么是上下文2.1、请求上下文2.2、应用上下文2.3、两种上下文的底层逻辑 三、写在最后 一、背景 在如何实现异步发送邮件的时候,遇到过这样一个报错 RuntimeError: Working outside of request context.This typically me…

vue基础教程(4)——十分钟吃透vue路由router

同学们可以私信我加入学习群! 正文开始 前言一、路由概念二、路由使用三、创建路由对应的组件四、给整个项目一个入口总结 前言 前面的文章运行成功后,页面显示如下: 在这个页面中,点击Home和About都会切换右面的页面内容&#…

PTA L2-038 病毒溯源

病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。 现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。 在此假设给出的变异都是由突变引起的&a…

uniapp对接极光推送(国内版以及海外版)

勾选push,但不要勾选unipush 国内版 网址:极光推送-快速集成消息推送功能,提升APP运营效率 (jiguang.cn) 进入后台,并选择对应应用开始配置 配置安卓包名 以及ios推送证书,是否将生产证书用于开发环境选择是 ios推送证书…

C++Template<>模版的介绍及深度解析

一、泛型编程 1.什么是泛型编程 泛型编程&#xff1a;是一种程序设计方法&#xff0c;编写于类型无关的通用代码&#xff0c;实现代码复用。而模版就是泛型编程的基础和核心。 二、template<>模版 1.template模版介绍 模版&#xff0c;顾名思义就是一个模具&#xff0…

【redis】linux安装redis

目录 1. 下载redis2. 上传并解压3. 安装4. redis配置5. 启动redis-server服务 1. 下载redis 1.Redis官网2.历史版本 2. 上传并解压 1.上传到/opt/redis 2.解压 tar zxvf redis-5.0.2.tar.gz 3. 安装 1.安装gcc yum install gcc-c2.make命令 # cd /opt/redis sudo make3.…

Elment ui 动态表格与表单校验 列表数据 组件

组件做个记录&#xff0c;方便以后会用到。 效果&#xff1a; 代码 &#xff1a; <template><el-dialog title"商品详情" :visible.sync"dialogVisible" width"80%"><el-tabs v-model"activeTab"><el-tab-pane…

第十二章:预处理命令

文章目录 第十二章&#xff1a;预处理命令宏定义无参宏定义带参数的宏定义 文件包含处理 第十二章&#xff1a;预处理命令 作用&#xff1a;由编译预处理程序对程序中的特殊命令作出解释&#xff0c;以产生新的源程序对其进行正式编译 C语言与其他语言的重要区别就是可以使用预…

环境温度对测量平板有什么影响

环境温度可以对测量平板有影响。温度变化可以导致平板的尺寸发生变化。根据热膨胀原理&#xff0c;当环境温度升高时&#xff0c;平板的尺寸会扩大&#xff1b;当环境温度降低时&#xff0c;平板的尺寸会缩小。这种尺寸变化可能会导致测量结果的误差。因此&#xff0c;在测量平…

OSCP靶场--RubyDome

OSCP靶场–RubyDome 考点(CVE-2022-25765 suid ruby提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -Pn -sC -sV 192.168.249.22 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-29 00:28 EDT Nmap scan report for 192.168.249.22 Hos…

mysql 常见运算符

学习了mysql数据类型&#xff0c;接下来学习mysql常见运算符。 2&#xff0c;常见运算符介绍 运算符连接表达式中各个操作数&#xff0c;其作用是用来指明对操作数所进行的运算。运用运算符 可以更加灵活地使用表中的数据&#xff0c;常见的运算符类型有&#xff1a;算…

阿里云魔搭发起“ModelScope-Sora开源计划”,将为中国类Sora模型开发提供一站式工具链

在2024年3月23日的全球开发者先锋大会上&#xff0c;阿里云的魔搭社区宣布了一个新计划&#xff1a;“ModelScope-Sora开源计划”。这个计划旨在通过开源方式&#xff0c;帮助中国在Sora模型类型上做出更多创新。这个计划提供了一整套工具&#xff0c;包括处理数据的工具、多模…

【御控物联】 IOT异构数据JSON转化(场景案例一)

文章目录 前言技术资料 前言 随着物联网、大数据、智能制造技术的不断发展&#xff0c;越来越多的企业正在进行工厂的智能化转型升级。转型升级第一步往往是设备的智能化改造&#xff0c;助力设备数据快速上云&#xff0c;实现设备数据共享和场景互联。然而&#xff0c;在生产…

车道线检测_Canny算子边缘检测_1

Canny算子边缘检测&#xff08;原理&#xff09; Canny算子边缘检测是一种经典的图像处理算法&#xff0c;由John F. Canny于1986年提出&#xff0c;用于精确、可靠地检测数字图像中的边缘特征。该算法设计时考虑了三个关键目标&#xff1a;低错误率&#xff08;即尽可能多地检…

衰老抑制剂原知因起源金NMN热销,“海弗里克极限”将被打破?

美国著名生物学家列奥纳多 海弗里克 , 在 1961 年研究人类胎儿的细胞群体分裂次数时提出了著名的 " 海弗里克极限 " 理论。该理论认为 , 正常细胞分裂的周期是 2-3 年 , 分裂次数大概是 50 次 , 得出人类的极限寿命高达 150 岁。半个世纪后 , 世界上最长寿的人 , 打…

ssm 科研奖励申报管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 ssm 科研奖励申报管理系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用…

拆分巨石:将MVPS和MVAS应用于遗留应用程序——可持续架构(六)

前言 MVP 和 MVA 的概念不仅适用于新应用程序&#xff1b;它们提供了一种新颖的方式来审视对遗留系统的范围变更&#xff0c;以防止过快地承担过多的变化 - 参见图1。MVA 可以帮助组织评估和更新其技术标准&#xff0c;通过展示新技术如何真正对支持 MVP 至关重要。创建 MVA 可…