HarmonyOS SDK对应的API版本跃迁引发的历史工程适配问题解决方案
历史工程自动适配
由于最新版本的HarmonyOS SDK对应的API Version发生了跃迁,原有的API Version 3变成了当前的API Version 4,原有的API Version 4变成了当前的API Version 5。因此,使用最新版本的DevEco Studio打开历史工程,需要对历史工程进行适配;如果历史工程未做适配,会导致工程出现运行错误INSTALL_PARSE_FAILED_USESDK_ERROR。
在打开历史工程前,建议您先点击Help > Check for Updates,检查并升级DevEco Studio至最新版本;点击Tools >SDK Manager,检查并升级SDK及工具链版本至最新版本。
使用DevEco Studio打开历史工程,会提示您将历史工程进行升级适配,点击Update,工具会自动修改工程中的配置信息,包括:
- 升级编译构建插件版本为2.4.2.7
- 在build.gradle中添加OHOS测试框架的依赖
- 升级config.json和build.gradle中的API Version
- 升级config.json中的releaseType字段的值:如果是DevEco Studio V2.1 Beta 2及之前的版本的工程,该字段适配为“Release”。工程升级前后的config.json关键字段对比如下表所示。
compatible/target/releaseType(适配前) | compatible/target/releaseType(适配后) |
3/3/- | 4/5/Release |
3/4/Beta1 | 4/5/Release |
3/4/Beta2 | 4/5/Release |
4/4/Beta1 | 5/5/Release |
4/4/Beta2 | 5/5/Release |
如果是DevEco Studio V2.1 Beta 3版本的工程,该字段保持“Beta1”不变。
INSTALL_PARSE_FAILED_USESDK_ERROR处理指导
问题现象:
如果工程中的releaseType字段与设备(模拟器和真机)中的SDK镜像版本的值不匹配,则运行时会报INSTALL_PARSE_FAILED_USESDK_ERROR错误,如下图所示。
解决措施:
在设备(模拟器或真机)中运行应用时,设备的Rom版本、releaseType和工程对应的SDK版本需要遵循如下的匹配关系。
运行设备 | Rom版本 | releaseType字段取值 | 工程对应的SDK版本 |
模拟器 | Release | "releaseType": "Release" | 2.1.1.20(Stage:Release) |
真机设备 | Beta | "releaseType": "Beta1" | 2.1.1.18(Stage:Beta) |
真机设备 | Release | "releaseType": "Release" | 2.1.1.20(Stage:Release) |
说明
真机设备的releaseType取值,可以通过如下命令进行查询。
hdc shell
getprop hw_sc.build.os.releasetype
例如:在模拟器中运行时,config.json中的releaseType字段必须修改为Release,SDK Manager中的SDK版本为2.1.1.20,Stage为Release。