目录
适配方法一
适配方法二
该适配场景适用于开发者希望将原OpenHarmony API 7的工程升级到OpenHarmony API 8或9的工程。
原OpenHarmony API 7的工程采用的是Gradle自动化构建工具,而OpenHarmony API 8/9的工程则采用Hvigor自动化构建工具,由于Gradle构建工具和Hvigor构建工具的配置文件不同,因此,对于采用Gradle编译构建的历史工程,需要手动进行适配,以适用于使用Hvigor工具进行编译构建。
说明
由于OpenHarmony API 7的工程属于FA模型,因此将工程升级到OpenHarmony API 8/9时,也只能升级为FA模型,不支持升级为Stage模型。
关于OpenHarmony API 7工程的升级适配,提供如下两种方法:
适配方法一
- 使用DevEco Studio创建一个OpenHarmony新工程。在配置工程信息时,请注意:
- Bundle name:请与需要适配的历史工程的Bundle name保持一致。待适配工程的Bundle name字段可在模块目录下的config.json文件中进行查阅。
- Compile SDK:请选择将要适配的目标API版本,支持选择8/9。
- Model:请选择FA。
- Language:选择与待适配工程使用的代码语言保持一致。
- 等待工程npm install执行完成后,删除entry下的src目录,请注意,其它配置文件不要删除。
- 将待适配工程entry模块下的src目录,拷贝到上述工程的entry文件夹下。
说明
如果待适配工程存在多个模块,可拷贝上述整个entry模块文件夹并修改模块名,然后将待适配模块中的源码和资源文件夹,替换到该模块下即可。
- 如果是eTS工程,请修改eTS源码文件中的引用包的后缀名,由import xx from‘xx.ets’修改为import xx from‘xx’,去掉.ets后缀名。
- 单击File > Sync and Refresh Project进行同步,等待工程同步完成。
至此,OpenHarmony历史工程便适配完成,您可以通过单击Build > Build Hap(s)/App(s) > Build Hap(s)验证是否可以正常编译构建HAP包。
适配方法二
- 在本地电脑中,进入OpenHarmony工程所在文件夹。
- 在工程根目录下,修改相关配置文件。
- 删除Gradle相关的文件及缓存文件,如下图蓝色框所示的文件及文件夹。
- 打开工程根目录下local.properties文件,并根据实际路径进行修改。
- #OpenHarmony SDK路径
- sdk.dir=D:/OpenHarmony/Sdk
- #Node.js路径
- nodejs.dir=D:/nodejs
- 新建一个文本文件,命名修改为“hvigorfile.js”。
- 打开hvigorfile.js文件,写入如下脚本信息。写入后,保存并关闭文件即可。
- module.exports = require('@ohos/hvigor-ohos-plugin').legacyAppTasks
- 打开package.json文件,写入如下脚本信息,其中:name、version和org字段,请根据实际进行填写,其余字段保持不变。写入后,保存并关闭文件即可。
- {
- "name": "myapplication",
- "version": "1.0.0",
- "ohos": {
- "org": "huawei",
- "buildTool": "hvigor",
- "directoryLevel": "project"
- },
- "description": "example description",
- "repository": {},
- "license": "ISC",
- "dependencies": {
- "@ohos/hypium": "1.0.2",
- "@ohos/hvigor": "1.2.1",
- "@ohos/hvigor-ohos-plugin": "1.2.1"
- }
- }
- 新建一个文本文件,命名修改为“build-profile.json5”。
- 打开build-profile.json5文件,写入如下脚本信息,其中compileSdkVersion和compatibleSdkVersion请修改为8或9,其余字段请参考1.5.2-工程级build-profile.json5
说明进行修改。写入后,保存并关闭文件即可。- {
- "app": {
- "signingConfigs": [],
- "compileSdkVersion": 8,
- "compatibleSdkVersion": 8,
- "products": [
- {
- "name": "default",
- "signingConfig": "default",
- }
- ]
- },
- "modules": [
- {
- "name": "entry",
- "srcPath": "./entry",
- "targets": [
- {
- "name": "default",
- "applyToProducts": [
- "default"
- ]
- }
- ]
- }
- ]
- }
- 进入模块目录下,修改相关配置文件。如有多个模块,请逐一修改。
- 删除build文件夹、build.gradle和progurad-rules.pro文件。
- 新建一个文本文件,命名修改为“package.json”。
- 打开package.json文件,写入如下脚本信息。
- {
- "name": "entry",
- "version": "1.0.0",
- "ohos": {
- "org": "huawei",
- "buildTool": "hvigor",
- "directoryLevel": "module"
- },
- "description": "example description",
- "repository": {},
- "license": "ISC",
- "dependencies": {}
- }
- 新建一个文本文件,命名修改为“hvigorfile.js”。
- 打开hvigorfile.js文件,写入如下脚本信息。写入后,保存并关闭文件即可。
- module.exports = require('@ohos/hvigor-ohos-plugin').legacyHapTasks
- 新建一个文本文件,命名修改为“build-profile.json5”。
- 打开build-profile.json5文件,写入如下脚本信息。写入后,保存并关闭文件即可。
- {
- "apiType": 'faMode',
- "buildOption": {
- },
- "targets": [
- {
- "name": "default"
- },
- {
- "name": "ohosTest",
- }
- ]
- }
- 如果是eTS工程,请修改eTS源码文件中的引用包的后缀名,由import xx from‘xx.ets’修改为import xx from‘xx’,去掉.ets后缀名。
- 使用新版本的DevEco Studio打开修改后的工程,单击底部工具栏的Terminal,然后执行npm install命令,安装相关依赖。
至此,OpenHarmony历史工程便适配完成,您可以通过单击Build > Build Hap(s)/App(s) > Build Hap(s)验证是否可以正常编译构建HAP包。