HarmonyOS 鸿蒙开发DevEco Studio OpenHarmony:Gradle工程适配为Hvigor工程

目录

适配方法一

适配方法二


该适配场景适用于开发者希望将原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工程的升级适配,提供如下两种方法:

适配方法一

  1. 使用DevEco Studio创建一个OpenHarmony新工程。在配置工程信息时,请注意:
    • Bundle name:请与需要适配的历史工程的Bundle name保持一致。待适配工程的Bundle name字段可在模块目录下的config.json文件中进行查阅。
    • Compile SDK:请选择将要适配的目标API版本,支持选择8/9。
    • Model:请选择FA。
    • Language:选择与待适配工程使用的代码语言保持一致。

  2. 等待工程npm install执行完成后,删除entry下的src目录,请注意,其它配置文件不要删除。

  3. 将待适配工程entry模块下的src目录,拷贝到上述工程的entry文件夹下。

    说明

    如果待适配工程存在多个模块,可拷贝上述整个entry模块文件夹并修改模块名,然后将待适配模块中的源码和资源文件夹,替换到该模块下即可。

  4. 如果是eTS工程,请修改eTS源码文件中的引用包的后缀名,由import xx from‘xx.ets’修改为import xx from‘xx’,去掉.ets后缀名。
  5. 单击File > Sync and Refresh Project进行同步,等待工程同步完成。

    至此,OpenHarmony历史工程便适配完成,您可以通过单击Build > Build Hap(s)/App(s) > Build Hap(s)验证是否可以正常编译构建HAP包。

适配方法二

  1. 在本地电脑中,进入OpenHarmony工程所在文件夹。
  2. 在工程根目录下,修改相关配置文件。
    1. 删除Gradle相关的文件及缓存文件,如下图蓝色框所示的文件及文件夹。

    2. 打开工程根目录下local.properties文件,并根据实际路径进行修改。
      
      
      1. #OpenHarmony SDK路径
      2. sdk.dir=D:/OpenHarmony/Sdk
      3. #Node.js路径
      4. nodejs.dir=D:/nodejs
    3. 新建一个文本文件,命名修改为“hvigorfile.js”。
    4. 打开hvigorfile.js文件,写入如下脚本信息。写入后,保存并关闭文件即可。
      
      
      1. module.exports = require('@ohos/hvigor-ohos-plugin').legacyAppTasks
    5. 打开package.json文件,写入如下脚本信息,其中:name、version和org字段,请根据实际进行填写,其余字段保持不变。写入后,保存并关闭文件即可。
      
      
      1. {
      2. "name": "myapplication",
      3. "version": "1.0.0",
      4. "ohos": {
      5. "org": "huawei",
      6. "buildTool": "hvigor",
      7. "directoryLevel": "project"
      8. },
      9. "description": "example description",
      10. "repository": {},
      11. "license": "ISC",
      12. "dependencies": {
      13. "@ohos/hypium": "1.0.2",
      14. "@ohos/hvigor": "1.2.1",
      15. "@ohos/hvigor-ohos-plugin": "1.2.1"
      16. }
      17. }
    6. 新建一个文本文件,命名修改为“build-profile.json5”。
    7. 打开build-profile.json5文件,写入如下脚本信息,其中compileSdkVersion和compatibleSdkVersion请修改为8或9,其余字段请参考1.5.2-工程级build-profile.json5
      说明进行修改。写入后,保存并关闭文件即可。
      
      
      1. {
      2. "app": {
      3. "signingConfigs": [],
      4. "compileSdkVersion": 8,
      5. "compatibleSdkVersion": 8,
      6. "products": [
      7. {
      8. "name": "default",
      9. "signingConfig": "default",
      10. }
      11. ]
      12. },
      13. "modules": [
      14. {
      15. "name": "entry",
      16. "srcPath": "./entry",
      17. "targets": [
      18. {
      19. "name": "default",
      20. "applyToProducts": [
      21. "default"
      22. ]
      23. }
      24. ]
      25. }
      26. ]
      27. }
  3. 进入模块目录下,修改相关配置文件。如有多个模块,请逐一修改。
    1. 删除build文件夹、build.gradle和progurad-rules.pro文件。

    2. 新建一个文本文件,命名修改为“package.json”。
    3. 打开package.json文件,写入如下脚本信息。
      
      
      1. {
      2. "name": "entry",
      3. "version": "1.0.0",
      4. "ohos": {
      5. "org": "huawei",
      6. "buildTool": "hvigor",
      7. "directoryLevel": "module"
      8. },
      9. "description": "example description",
      10. "repository": {},
      11. "license": "ISC",
      12. "dependencies": {}
      13. }
    4. 新建一个文本文件,命名修改为“hvigorfile.js”。
    5. 打开hvigorfile.js文件,写入如下脚本信息。写入后,保存并关闭文件即可。
      
      
      1. module.exports = require('@ohos/hvigor-ohos-plugin').legacyHapTasks
    6. 新建一个文本文件,命名修改为“build-profile.json5”。
    7. 打开build-profile.json5文件,写入如下脚本信息。写入后,保存并关闭文件即可。
      
      
      1. {
      2. "apiType": 'faMode',
      3. "buildOption": {
      4. },
      5. "targets": [
      6. {
      7. "name": "default"
      8. },
      9. {
      10. "name": "ohosTest",
      11. }
      12. ]
      13. }
  4. 如果是eTS工程,请修改eTS源码文件中的引用包的后缀名,由import xx from‘xx.ets’修改为import xx from‘xx’,去掉.ets后缀名。
  5. 使用新版本的DevEco Studio打开修改后的工程,单击底部工具栏的Terminal,然后执行npm install命令,安装相关依赖。

    至此,OpenHarmony历史工程便适配完成,您可以通过单击Build > Build Hap(s)/App(s) > Build Hap(s)验证是否可以正常编译构建HAP包。