鸿蒙NEXT-鸿蒙老版本迁移最新版本(API19,modelVersion5.1.1)

简介: 鸿蒙更新至API19,新增热更新支持、资源过滤、内存分析等功能。本文详解手动迁移步骤及上下文获取问题解决方案。


2025/6/21,最近鸿蒙出最新的API和modelVsersion了,模拟器支持热更新了(不支持hsp动态共享包),Build Analyzer支持查看构建过程的内存消耗情况,buildOption/resOptions下新增ignoreResourcePattern,用于对资源目录resources或开发者自定义的资源目录下的文件/文件夹名称进行过滤,匹配到的文件不会被打包到产物中,ArkTS代码调试支持查看异步函数堆栈,那么作者作为开源区up,也特别想要试试去实现版本的更新迁移。

那么如何迁移更新呢?接下来就是手动迁移更新的教程,修改完成,点击同步即可完成,使用最新的API19。(以三层架构路径为例,大家可以对照着看,位置差不多)

第一步:

找到根目录下的该文件,位置为: 根目录>hvigor>hvigor-config.json5

点击进去,modelVersion修改为如下5.1.1

第二步:

找到根目录的该文件,位置为: 根目录>build-profile.json5

点击进去,找到app,products里的targetSdkVersion,compatibleSdkVersion,修改为如下

第三步:找到根目录的该文件,位置为: 根目录>on-package.json5

点击进去,modelVersion修改为如下5.1.1

第四步:点击右上角的Sync Now,运行代码,即可使用API19

温馨提示:

在API18时,废弃了很多的API,请注意API更新,但是在ability中,使用 windowStage.getMainWindowSync().getUIContext()官方示例代码(2025/6/21),去获取上下文,将会报错,如何解决这个问题呢,请使用 ,如下代码

windowStage.getMainWindow().then((win) => {
const uiContext = win.getUIContext()
// 储存安全区域数据
AppStorage.setOrCreate('safeTop', uiContext.px2vp(top.height))
AppStorageV2.connect(Number, 'safeTop', () => new Number(uiContext.px2vp(top.height)))

  AppStorage.setOrCreate<number>('safeBottom', uiContext.px2vp(bottom.height))
  AppStorageV2.connect(Number, 'safeBottom', () => new Number(uiContext.px2vp(bottom.height)))
})

避免程序运行不了,对了AppStorageV2.connect(UIContext,'uiContext',()=>new UIContext())?.getHostContext(),去获取上下文在ability只能得到为空,只能使用我提供的解决方案,具体的详解,请参考文档另一篇文章鸿蒙NEXT-API19获取上下文,在class中和ability中获取上下文,API迁移示例-解决无法在EntryAbility中无法使用最新版API获取上下文。

相关文章
|
2月前
|
移动开发 前端开发 JavaScript
鸿蒙NEXT时代你所不知道的全平台跨端框架:CMP、Kuikly、Lynx、uni-app x等
本篇基于当前各大活跃的跨端框架的现状,对比当前它们的情况和未来的可能,帮助你在选择框架时更好理解它们的特点和差异。
269 0
|
3月前
|
容器
鸿蒙Next仓颉语言开发实战教程:店铺详情页
本文介绍了使用仓颉语言开发HarmonyOS应用中的店铺详情页实现方法,重点讲解了List容器的使用技巧,包括如何布局、设置圆角及处理列表项分组等内容,并附有完整代码示例。
|
2月前
|
存储 机器学习/深度学习 API
Android API Level 到底是什么?和安卓什么关系?应用发布如何知道自己的版本?优雅草卓伊凡
Android API Level 到底是什么?和安卓什么关系?应用发布如何知道自己的版本?优雅草卓伊凡
439 31
Android API Level 到底是什么?和安卓什么关系?应用发布如何知道自己的版本?优雅草卓伊凡
|
30天前
|
移动开发 网络协议 小程序
鸿蒙NEXT即时通讯/IM系统RinbowTalk v2.4版发布,基于MobileIMSDK框架、ArkTS编写
RainbowTalk是一套基于开源即时通讯讯IM框架 MobileIMSDK 的产品级鸿蒙NEXT端IM系统。纯ArkTS编写、全新开发,没有套壳、也没走捷径,每一行代码都够“纯血”。与姊妹产品RainbowChat和RainbowChat-Web 技术同源,历经考验。
65 1
|
2月前
|
缓存 移动开发 网络协议
纯血鸿蒙NEXT即时通讯/IM系统:RinbowTalk正式发布,全源码、纯ArkTS编写
RainbowTalk是一套基于MobileIMSDK的产品级鸿蒙NEXT端IM系统,目前已正式发布。纯ArkTS、从零编写,无套壳、没走捷径,每一行代码都够“纯”(详见:《RainbowTalk详细介绍》)。 MobileIMSDK是一整套开源IM即时通讯框架,历经10年,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp、鸿蒙NEXT,服务端基于Netty编写。
174 1
|
3月前
|
开发者 容器
鸿蒙Next仓颉语言开发实战教程:设置页面
本教程介绍了仓颉语言商城应用设置页面的开发,重点讲解了List容器的使用。页面分为三组列表内容,第一组直接使用ListItem实现,后两组通过ListItemGroup及自定义组件setrow完成布局。教程还演示了如何通过自定义组件提升代码复用性,并介绍了分割线divider的设置方法,帮助开发者高效构建美观的设置界面。
鸿蒙Next仓颉语言开发实战教程:订单列表
本文介绍了使用仓颉语言开发HarmonyOS商城应用的订单列表页实现方法,包含导航栏、订单类型切换和订单列表展示三部分。通过代码示例讲解了布局技巧与组件使用,适合初学者学习参考。
鸿蒙Next仓颉语言开发实战教程:下拉刷新和上拉加载更多
本文介绍了在仓颉开发语言中实现下拉刷新和上拉加载更多的方法。通过Refresh组件实现下拉刷新,结合Timer模拟网络加载;并通过监听列表滚动事件,在列表底部添加加载动画实现上拉加载更多功能。代码示例清晰实用,适用于商城等含列表交互的移动应用开发。
|
编译器
鸿蒙NEXT-鸿蒙三层架构搭建,嵌入HMRouter,实现便捷跳转,新手攻略。(2/3)
本文介绍在三层架构中实现模块依赖的步骤。首先在产品定制层(features)的oh-package.json5文件中导入共享包依赖,如"basic":"file:../../commons/basic"。然后在产品层(products)的配置文件中同时导入公共能力层和产品定制层的依赖,示例展示了如何添加"basic"和"my"两个依赖项。通过这些配置,三层架构的各模块之间建立了完整的依赖关系。
129 0
鸿蒙NEXT-鸿蒙三层架构搭建,嵌入HMRouter,实现便捷跳转,新手攻略。(2/3)
|
3月前
|
存储 开发者
鸿蒙Next仓颉开发语言中的数据类型总结分享
仓颉语言数据类型包括多种数字类型(Int、Float)、字符串(String)、数组(Array、ArrayList、ObservedArrayList)及HashMap。数字类型区分长度和精度,数组支持固定与动态操作,HashMap用于存储键值对。适合开发者快速掌握仓颉基础数据结构。#仓颉 #HarmonyOS