我们的应用还在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. 最复杂的一个问题是编译通过,但是合并mainfeist 报错,就需要用命令gradlew build --debug --info --stacktrace 才看问题后再解决。
以上是升级相关配置遇到的问题,只是api 升级后完成了工程的正确编译,并不包括需要的api 适配。
用户评论
这个标题看起来好像是在讨论Android系统从API 13升级到API 15的开发过程嘛。
有14位网友表示赞同!
我猜这应该是个比较深入的专题了。
有14位网友表示赞同!
升级过程中会有什么需要注意的点吗?好奇了解一下。
有18位网友表示赞同!
对于像我这种新手来说,这个过程会不会很复杂呢?
有14位网友表示赞同!
以前在API 13开发的程序直接能适配到15吗?还是需要重写部分代码啊?
有9位网友表示赞同!
听起来像是技术更新吧,期待学习一下新技能。
有12位网友表示赞同!
有没有推荐的教程或者资料,让我了解一下升级的过程?
有6位网友表示赞同!
这个升级对游戏性能有直接影响吗?我是开发者,很关心这一点。
有9位网友表示赞同!
API升级后,游戏会有哪些新的功能支持呢?
有12位网友表示赞同!
想知道一些典型案例,看看别人是如何处理的。
有18位网友表示赞同!
有没有人在升级过程中遇到了什么问题,分享一下经验吧!
有20位网友表示赞同!
听说有些第三方库可能会受到影响,这个标题给了我一点提示。
有19位网友表示赞同!
对于游戏画面和音效会有哪些区别吗?好想了解一下。
有20位网友表示赞同!
这个升级对我的开源项目也会有帮助吧,期待看看。
有17位网友表示赞同!
有没有专门的工具或者插件可以帮助在API升级中提高开发效率呢?
有11位网友表示赞同!
这对我个人的职业发展应该也会有帮助,我想了解一些最佳实践。
有20位网友表示赞同!
升级后游戏稳定性怎样?我听说是提升了不少,希望不是虚假宣传。
有15位网友表示赞同!
想要了解更多关于API 15新功能的细节,比如图形渲染或者3D建模之类的。
有20位网友表示赞同!