DevEco Studio 6.0.1 Release 新建项目,编译报错

DevEco Studio 6.0.1 Release 新建项目,编译报错 这是build-profile.json5 文件内容

{
  "app": {
    "signingConfigs": [],
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        "targetSdkVersion": "6.0.1(21)",
        "compatibleSdkVersion": "5.0.0(12)",
        "compileSdkVersion": "6.0.1(21)",
        "runtimeOS": "HarmonyOS",
        "buildOption": {
          "strictMode": {
            "caseSensitiveCheck": true,
            "useNormalizedOHMUrl": true
          }
        }
      }
    ],
    "buildModeSet": [
      {
        "name": "debug",
      },
      {
        "name": "release"
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default"
          ]
        }
      ]
    }
  ]
}

以下是报错内容, 但是有点迷惑, 报错信息和配置文件的格式好像有点对不上

/Applications/DevEco-Studio.app/Contents/tools/node/bin/node /Applications/DevEco-Studio.app/Contents/tools/hvigor/bin/hvigorw.js --sync -p product=default --analyze=normal --parallel --incremental --daemon
> hvigor ERROR: Schema validate failed.
	 Detail: Please check the following fields.
{
  instancePath: 'app',
  keyword: 'required',
  params: { missingProperty: 'compileSdkVersion' },
  message: "must have required property 'compileSdkVersion'",
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:2:11'
} 
{
  instancePath: 'app',
  keyword: 'required',
  params: { missingProperty: 'compatibleSdkVersion' },
  message: "must have required property 'compatibleSdkVersion'",
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:2:11'
} 
{
  instancePath: 'app',
  keyword: 'enum',
  params: {
    allowedValues: [
      'compileSdkVersion',
      'compatibleSdkVersion',
      'signingConfigs',
      'products',
      'multiProjects'
    ]
  },
  message: 'must be equal to one of the allowed values',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:2:11'
} 
{
  instancePath: 'app',
  keyword: 'propertyNames',
  params: { propertyName: 'buildModeSet' },
  message: 'property name must be valid',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:2:11'
} 
{
  instancePath: 'app.products[0]',
  keyword: 'enum',
  params: {
    allowedValues: [ 'name', 'signingConfig', 'bundleName', 'buildOption' ]
  },
  message: 'must be equal to one of the allowed values',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:5:8'
} 
{
  instancePath: 'app.products[0]',
  keyword: 'propertyNames',
  params: { propertyName: 'targetSdkVersion' },
  message: 'property name must be valid',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:5:8'
} 
{
  instancePath: 'app.products[0]',
  keyword: 'enum',
  params: {
    allowedValues: [ 'name', 'signingConfig', 'bundleName', 'buildOption' ]
  },
  message: 'must be equal to one of the allowed values',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:5:8'
} 
{
  instancePath: 'app.products[0]',
  keyword: 'propertyNames',
  params: { propertyName: 'compatibleSdkVersion' },
  message: 'property name must be valid',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:5:8'
} 
{
  instancePath: 'app.products[0]',
  keyword: 'enum',
  params: {
    allowedValues: [ 'name', 'signingConfig', 'bundleName', 'buildOption' ]
  },
  message: 'must be equal to one of the allowed values',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:5:8'
} 
{
  instancePath: 'app.products[0]',
  keyword: 'propertyNames',
  params: { propertyName: 'compileSdkVersion' },
  message: 'property name must be valid',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:5:8'
} 
{
  instancePath: 'app.products[0]',
  keyword: 'enum',
  params: {
    allowedValues: [ 'name', 'signingConfig', 'bundleName', 'buildOption' ]
  },
  message: 'must be equal to one of the allowed values',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:5:8'
} 
{
  instancePath: 'app.products[0]',
  keyword: 'propertyNames',
  params: { propertyName: 'runtimeOS' },
  message: 'property name must be valid',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:5:8'
} 
{
  instancePath: 'app.products[0].buildOption',
  keyword: 'enum',
  params: { allowedValues: [ 'packOptions' ] },
  message: 'must be equal to one of the allowed values',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:12:25'
} 
{
  instancePath: 'app.products[0].buildOption',
  keyword: 'propertyNames',
  params: { propertyName: 'strictMode' },
  message: 'property name must be valid',
  location: '/Users/imm/DevEcoStudioProjects/idaapp/build-profile.json5:12:25'
} 


* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --debug option to get more log output.

> hvigor ERROR: BUILD FAILED in 10 ms 

Process finished with exit code -1

3 回复

解决方式:把”signingConfigs“签名配置下。

本地开发的时候可以用自动签名。


DevEco Studio 6.0.1新建项目编译报错,通常与项目配置或环境有关。请检查项目使用的SDK版本是否与DevEco Studio版本兼容。确认Node.js版本符合要求(通常为18.19.1或20.11.1)。检查项目build-profile.json5中的compileSdkVersioncompatibleSdkVersion设置是否正确。清理并重新构建项目(点击Build > Clean Project,再点击Build > Build Project)。

根据报错信息,你的 build-profile.json5 配置文件存在严重的结构错误。错误的核心在于你混淆了 HarmonyOS Next (API 11+)HarmonyOS (API 9/10) 的配置文件格式。

你提供的配置文件结构是用于 HarmonyOS (API 9/10) 的,但 DevEco Studio 6.0.1 在构建时,特别是针对 HarmonyOS Next 项目,使用的是新的 Stage 模型ArkTS 的配置规范。

问题分析:

  1. 根节点错误:在 HarmonyOS Next 的 Stage 模型项目中,build-profile.json5 的顶级配置对象是 appmodules,但字段定义与你的文件完全不同。你的 app 对象下包含了 products 等旧版字段,而新版规范中,compileSdkVersioncompatibleSdkVersion 等关键字段应直接位于 app 对象下,而不是嵌套在 products 里。
  2. 字段位置错误:报错明确指出在 app 实例中缺少 compileSdkVersioncompatibleSdkVersion 属性。这意味着这两个字段应该直接放在 app: { ... } 这一层级。
  3. 非法字段productstargetSdkVersionruntimeOSbuildModeSet 以及 buildOption.strictMode 等字段在新版 Stage 模型的 build-profile.json5 中不被识别或已变更位置/名称。

解决方案:

你需要将 build-profile.json5 文件修改为 HarmonyOS Next (Stage 模型) 的标准格式。一个正确的基础模板如下:

{
  "app": {
    // 签名配置,如果未签名可暂时为空数组
    "signingConfigs": [],
    // 这两个字段必须直接放在 app 对象下
    "compileSdkVersion": "6.0.1(21)",
    "compatibleSdkVersion": "6.0.1(21)", // 通常与 compileSdkVersion 保持一致
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        // 包名,必须修改为你自己的
        "bundleName": "com.example.myapplication",
        "buildOption": {
          // 注意:这里是 packOptions,不是 strictMode
          "packOptions": {
            "resourceFilter": []
          }
        }
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default"
          ]
        }
      ]
    }
  ]
}

关键修改点:

  • compileSdkVersioncompatibleSdkVersionapp.products[0] 中移出,直接放到 app 对象下。
  • 删除了 targetSdkVersionruntimeOS 字段。
  • buildOption 下的 strictMode 改为 packOptions
  • 确保 app.products[0] 中包含 bundleName 字段。

操作建议:

最可靠的方法是使用 DevEco Studio 6.0.1 重新创建一个新的 Empty Ability (ArkTS) 项目(确保选择 HarmonyOS Next),然后将其自动生成的 build-profile.json5 文件内容复制过来,再根据你的需求(如修改包名)进行微调。这样可以避免手动修改可能产生的格式或语法错误。

回到顶部