鸿蒙NEXT-鸿蒙老版本迁移最新版本(API19,modelVersion5.1.1)
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<number>('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获取上下文。