HarmonyOS 鸿蒙Next中安装失败:40 无效的配置文件格式

HarmonyOS 鸿蒙Next中安装失败:40 无效的配置文件格式 设备:HUAWEI Watch GT Runner 设备版本:4.0.0.120 错误码:40 工具:应用调测助手、Dev Eco Studio 描述:在DevEco上正常编译、模拟器正常运行,但是编译hap后用应用调测助手安装报错40。

  • 查看过文档,未找到compileSdkVersion
  • 应用图标只有内置的两个,一个是1024x1024的,另一个small92x92的。
  • config.json中未发现过长。

string.json如下

{
  "string": [
    {
      "name": "module_desc",
      "value": "module description"
    },
    {
      "name": "MainAbility_desc",
      "value": "description"
    },
    {
      "name": "MainAbility_label",
      "value": "tests"
    }
  ]
}

config.json如下

{
  "app": {
    "bundleName": "com.example.watch_gt",
    "vendor": "example",
    "version": {
      "code": 1000000,
      "name": "1.0.0"
    }
  },
  "deviceConfig": {},
  "module": {
    "deviceType": [
      "liteWearable"
    ],
    "distro": {
      "deliveryWithInstall": true,
      "moduleName": "entry",
      "moduleType": "entry"
    },
    "abilities": [
      {
        "name": ".MainAbility",
        "srcLanguage": "js",
        "srcPath": "MainAbility",
        "icon": "$media:icon_small",
        "description": "$string:MainAbility_desc",
        "label": "$string:MainAbility_label",
        "type": "page"
      }
    ],
    "js": [
      {
        "pages": [
          "pages/index/index",
          "pages/train/train"
        ],
        "name": ".MainAbility"
      }
    ]
  }
}

脱敏后的build_profile.json5如下

{
  "app": {
    "signingConfigs": [
      {
        "name": "default",
        "type": "HarmonyOS",
        "material": {
          "certpath": "***",
          "keyAlias": "***",
          "keyPassword": "***",
          "profile": "***",
          "signAlg": "SHA256withECDSA",
          "storeFile": "***",
          "storePassword": "***"
        }
      }
    ],
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        "targetSdkVersion": "4.0.0(10)",
        "compatibleSdkVersion": "4.0.0(10)",
        "runtimeOS": "HarmonyOS",
        "buildOption": {
          "strictMode": {
            "caseSensitiveCheck": true,
            "useNormalizedOHMUrl": false
          }
        }
      }
    ],
    "buildModeSet": [
      {
        "name": "debug",
      },
      {
        "name": "release"
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default"
          ]
        }
      ]
    }
  ]
}

更多关于HarmonyOS 鸿蒙Next中安装失败:40 无效的配置文件格式的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

安装失败代码40表示配置文件格式无效。请检查应用的配置文件(如app.json5或module.json5)是否符合HarmonyOS Next的规范要求。确保文件结构正确,属性值类型无误,且没有语法错误。

更多关于HarmonyOS 鸿蒙Next中安装失败:40 无效的配置文件格式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


错误码40通常表示配置文件格式无效,但根据你提供的配置,问题可能出在几个关键点上。

首先,你提到设备版本是4.0.0.120,但你的 build_profile.json5 中设置的 targetSdkVersioncompatibleSdkVersion"4.0.0(10)"。对于运行HarmonyOS Next的设备,特别是手表,你需要确保SDK版本与设备系统版本精确匹配。请检查你的DevEco Studio中安装的SDK版本,并确认 build_profile.json5 中的版本号格式是否正确。对于Next版本,版本号格式可能有所不同。

其次,你的 config.json 中缺少 compileSdkVersion 字段。在HarmonyOS Next中,compileSdkVersion 是必需的,它定义了编译应用时使用的SDK版本。你需要在 app 对象下添加这个字段,例如:

"app": {
  "bundleName": "com.example.watch_gt",
  "vendor": "example",
  "version": {
    "code": 1000000,
    "name": "1.0.0"
  },
  "compileSdkVersion": "4.0.0.0" // 请替换为你的实际SDK版本
}

另外,检查你的图标资源引用。在 abilities 中,你使用了 "$media:icon_small"。确保在 resources/base/media 目录下存在名为 icon_small 的图片资源,并且其格式和尺寸符合手表的要求(例如,92x92像素)。虽然你提到有内置图标,但引用路径必须完全匹配。

最后,验证 config.json 的完整性。确保没有缺少其他必需字段,如 package(在HarmonyOS Next中可能已整合到 app 中,但需确认结构)。同时,检查JSON格式是否正确,没有多余的逗号或语法错误。

建议你更新 config.jsonbuild_profile.json5 中的版本信息,并重新编译HAP文件进行安装测试。

回到顶部