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
解决方式:把”signingConfigs“签名配置下。
本地开发的时候可以用自动签名。
DevEco Studio 6.0.1新建项目编译报错,通常与项目配置或环境有关。请检查项目使用的SDK版本是否与DevEco Studio版本兼容。确认Node.js版本符合要求(通常为18.19.1或20.11.1)。检查项目build-profile.json5中的compileSdkVersion和compatibleSdkVersion设置是否正确。清理并重新构建项目(点击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 的配置规范。
问题分析:
- 根节点错误:在 HarmonyOS Next 的 Stage 模型项目中,
build-profile.json5的顶级配置对象是app和modules,但字段定义与你的文件完全不同。你的app对象下包含了products等旧版字段,而新版规范中,compileSdkVersion、compatibleSdkVersion等关键字段应直接位于app对象下,而不是嵌套在products里。 - 字段位置错误:报错明确指出在
app实例中缺少compileSdkVersion和compatibleSdkVersion属性。这意味着这两个字段应该直接放在app: { ... }这一层级。 - 非法字段:
products、targetSdkVersion、runtimeOS、buildModeSet以及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"
]
}
]
}
]
}
关键修改点:
- 将
compileSdkVersion和compatibleSdkVersion从app.products[0]中移出,直接放到app对象下。 - 删除了
targetSdkVersion和runtimeOS字段。 - 将
buildOption下的strictMode改为packOptions。 - 确保
app.products[0]中包含bundleName字段。
操作建议:
最可靠的方法是使用 DevEco Studio 6.0.1 重新创建一个新的 Empty Ability (ArkTS) 项目(确保选择 HarmonyOS Next),然后将其自动生成的 build-profile.json5 文件内容复制过来,再根据你的需求(如修改包名)进行微调。这样可以避免手动修改可能产生的格式或语法错误。

