网站首页 > 博客文章 正文
我们的应用还在android 13 版本,决定把工程升级到15 ,结果发现很多东西要修改,下面是升级的过程记录。
# 1. 现状
android api 33
jdk 版本11
kotlin 版本1.6,用的还是 kotlin-android-extensions 方案
gradle 版本 7.3.0
# 2. 遇到的问题以及解决方案
主要使用工具 AGP Update Assist 和 Android SDK update。android,gradle,kotlin 相互影响。android api 升级需要gradle 升级,gradle 升级又需要kotlin 升级。
1. 先把android api 升级到35,会发现需要gradle 升级,就把gradle 版本调整为8.7.0 ,结果发现根本下不来,最后采用腾讯镜像才完成升级,腾讯镜像地址是https\://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip。
1. 随后升级jdk 为17后,会碰到jdk_home 原来设置的是1.8 版本不一致的提示,修改路径到17的位置。
1. 修改build.gradle 过时的用法compileSdkVersion 更换为 compileSdk,targetSdk 更换为targetSdkVersion,compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}更换为 compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
4. kotlin 版本由 1.6.20 升级为 1.9.20,kotlin-android-extensions 更换为kotlin-kapt,引入kotlin-parcelize,使用room 框架的原来的 annotationProcessor "androidx.room:room-compiler:$room_version" 更换为 kapt "androidx.room:room-compiler:$room_version",另外
buildFeature 增加 viewBinding = true
5. kotlin 升级后导致报了很多语法错误,主要碰到的问题有:
<!---->
1. 1. 1. api 重载不匹配,有ondraw 方法,Animator.AnimatorListener 的重载方法,修改方法都是去掉?
1. when 没有覆盖所有条件,修改方法是增加else
1. 无效的引用,删除import kotlinx.android.synthetic.main.usecarselectcity.*
1. include id 对应的view 找不到熟悉比如visibility,需要给对应的Include 根节点增加id ,用根节点view
1. 自定义组件中直接使用的控件变量找不到定义,修改方法是需要再重新声明下,如 val tv_filter_time:TextView?=null;
1. 最复杂的一个问题是编译通过,但是合并mainfeist 报错,就需要用命令gradlew build --debug --info --stacktrace 才看问题后再解决。
以上是升级相关配置遇到的问题,只是api 升级后完成了工程的正确编译,并不包括需要的api 适配。
猜你喜欢
- 2025-01-15 kubernetes快速安装部署指南
- 2025-01-15 一文带你看懂vue基础语法、生命周期、指令、监听器、依赖注入
- 2025-01-15 美国工程合同中常见的招投标条款(中英文对照)
- 2025-01-15 JNI接口操作最佳实践(三)
- 2025-01-15 java基础都在这了,小主们拿去吧
- 2025-01-15 写作技巧——这些情况下,必须加连字符
- 2025-01-15 「云原生」k8s中volumeMounts.subPath的巧妙用法
- 2025-01-15 RmlUi:探索C++图形用户界面的璀璨明珠
- 2025-01-15 超级好用的配置文件解析器:minIni
- 2025-01-15 windows常见后门和Linux常见后门
你 发表评论:
欢迎- 366℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 354℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 344℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)