使用DevEco Studio 6.1.1版本创建元服务编译不通过
使用DevEco Studio 6.1.1版本创建元服务编译不通过 我选择模板元服务Empty Ability
"targetSdkVersion": "6.1.0(23)",
"compatibleSdkVersion": "6.1.0(23)"
使用mate 60进行调试,手机系统版本为6.1.0
E:\DevEcoStudio\tools\node\node.exe E:\DevEcoStudio\tools\hvigor\bin\hvigorw.js --mode module -p module=entry@default -p product=default -p requiredDeviceType=phone assembleHap --analyze=normal --parallel --incremental --daemon
hvigor Finished :entry:default@PreBuild… after 119 ms
hvigor Finished :entry:default@CreateModuleInfo… after 1 ms
hvigor UP-TO-DATE :entry:default@GenerateMetadata…
hvigor Finished :entry:default@ConfigureCmake… after 1 ms
hvigor Finished :entry:default@MergeProfile… after 3 ms
hvigor Finished :entry:default@CreateBuildProfile… after 2 ms
hvigor Finished :entry:default@PreCheckSyscap… after 1 ms
hvigor UP-TO-DATE :entry:default@GeneratePkgContextInfo…
hvigor Finished :entry:default@GeneratePkgSdkInfo… after 3 ms
hvigor Finished :entry:default@ProcessIntegratedHsp… after 1 ms
hvigor Finished :entry:default@BuildNativeWithCmake… after 1 ms
hvigor Finished :entry:default@MakePackInfo… after 2 ms
hvigor Finished :entry:default@SyscapTransform… after 3 ms
hvigor Finished :entry:default@ProcessProfile… after 73 ms
hvigor UP-TO-DATE :entry:default@ProcessRouterMap…
hvigor UP-TO-DATE :entry:default@ProcessShareConfig…
hvigor Finished :entry:default@ProcessStartupConfig… after 2 ms
hvigor Finished :entry:default@BuildNativeWithNinja… after 1 ms
hvigor UP-TO-DATE :entry:default@ProcessResource…
hvigor UP-TO-DATE :entry:default@GenerateLoaderJson…
hvigor Finished :entry:default@ProcessLibs… after 2 ms
hvigor Finished :entry:default@CompileResource… after 337 ms
hvigor UP-TO-DATE :entry:default@DoNativeStrip…
hvigor Finished :entry:default@BuildJS… after 3 ms
hvigor UP-TO-DATE :entry:default@CacheNativeLibs…
hvigor ERROR: Failed :entry:default@CompileArkTS…
hvigor ERROR: Error Code: 00308018 Unknown Error
ENOTDIR: not a directory, scandir ‘E:\DevEcoStudio\sdk\default\openharmony\ets\build-tools\ets-loader\components’
COMPILE RESULT:FAIL {ERROR:1}
-
Try the following:
This error is unknown, view the detailed error logs in the ‘.hvigor > outputs > build-logs’ directory in the project directory for analysis, or contact the developer’s official website for help.
More info: https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs/faqs-compiling-and-building
-
Try:
Run with --stacktrace option to get the stack trace.
Run with --debug option to get more log output.
hvigor ERROR: BUILD FAILED in 3 s 140 ms
大致问题应该知道了。我这个目录里面都是有东西,但是右键属性却提示没有文件,我用其他工具也是无法访问到这个目录的,是windows的bug吗?有人知道什么原因不? 我把这个目录拷贝到桌面,也是一样的


这个问题从报错信息来看,不是代码问题,而是 DevEco Studio 6.1.1 或 SDK 安装异常导致的构建环境问题。
关键报错:
Error Code: 00308018
ENOTDIR: not a directory, scandir
'E:\DevEcoStudio\sdk\default\openharmony\ets\build-tools\ets-loader\components'
其中:
scandir xxx/components
ENOTDIR: not a directory
表示编译器准备扫描:
E:\DevEcoStudio\sdk\default\openharmony\ets\build-tools\ets-loader\components
这个目录时发现:
- 要么这个路径不存在
- 要么 components 被错误地安装成了文件
- 要么 ets-loader 安装不完整
- 要么 SDK 升级过程中目录结构损坏
第一步:先检查目录
直接打开:
E:\DevEcoStudio\sdk\default\openharmony\ets\build-tools\ets-loader
看看里面是否存在:
components
正常情况应该是:
ets-loader
├─ bin
├─ lib
├─ components
├─ package.json
如果看到:
components
是个文件而不是文件夹,
或者根本不存在,
那就找到原因了。
第二步:检查 SDK 是否安装完整
进入:
DevEco Studio
Settings
HarmonyOS SDK
检查:
HarmonyOS SDK 6.1.0(API23)
是否完整安装。
重点检查:
ArkTS
ETS
Build Tools
几个组件。
很多开发者升级到:
DevEco Studio 6.1.1
后出现过:
SDK下载不完整
ets-loader缺失
的问题。
第三步:删除 ets 目录重新下载
建议直接删除:
E:\DevEcoStudio\sdk\default\openharmony\ets
然后:
SDK Manager
→ Remove
→ 重新安装 API23
重新下载。
因为:
ets-loader
属于 SDK 内置工具,
不是项目生成的。
只要这里坏了,
所有 ArkTS 工程都会编译失败。
第四步:确认是不是元服务模板 Bug
你说:
"targetSdkVersion": "6.1.0(23)"
并且:
Empty Ability(元服务)
新建项目直接报错。
这种情况很像:
DevEco Studio 6.1.1 + API23
已知存在部分安装环境下:
ets-loader/components
路径解析异常。
可以验证一下:
新建普通 Application
File
→ New Project
→ Application
→ Empty Ability
编译看看。
如果:
普通应用正常
元服务失败
就是模板问题。
如果:
普通应用也失败
就是 SDK 损坏。
第五步:查看 components 实际状态
Windows命令行执行:
dir E:\DevEcoStudio\sdk\default\openharmony\ets\build-tools\ets-loader
或者:
dir /a
看看:
components
到底是什么。
正常应看到:
<DIR> components
如果是:
components
没有 <DIR>,
说明被错误覆盖成文件了。
第六步:查看是否安装到了错误 SDK
很多机器同时存在:
sdk\default\hms
sdk\default\openharmony
建议确认:
File
→ Project Structure
→ SDK Location
是否指向:
E:\DevEcoStudio\sdk\default
而不是旧版本 SDK。
根据你的报错,我判断概率最大的原因
按概率排序:
① SDK中的 ets-loader 损坏(80%)
表现:
ENOTDIR
scandir ets-loader/components
最符合。
解决:
删除 SDK
重新安装 API23
② DevEco Studio 6.1.1 安装异常(15%)
解决:
卸载 6.1.1
重新安装 6.1.1
或者回退:
6.1.0 Release
③ 元服务模板 Bug(5%)
验证方法:
新建普通 Application
测试是否能编译。
建议你先把下面两个目录截图出来:
E:\DevEcoStudio\sdk\default\openharmony\ets\build-tools\ets-loader
以及
E:\DevEcoStudio\sdk\default\openharmony\ets\build-tools
我基本就能直接判断是 SDK 缺文件、目录结构错误,还是 6.1.1 的模板问题。
这个错误更像本地 DevEco Studio / SDK 构建工具损坏,不像手机或元服务模板问题。关键日志是 ArkTS 编译阶段扫描 ets-loader/components 失败,并提示 ENOTDIR,说明编译器预期那里是目录,但实际文件结构不对或 SDK 安装残缺。
建议按这个顺序排查:先关闭 DevEco Studio,结束残留 node、hvigor 进程;再删除项目里的 .hvigor、build、entry/build 缓存;然后执行 Invalidate Caches / Restart。若仍失败,到 SDK Manager 里重新安装或修复 6.1.0 / API 23 的 HarmonyOS SDK、ArkTS build tools。
再做一个空元服务 Empty Ability 项目验证:如果空项目也在 CompileArkTS 报同样错误,基本就是 IDE/SDK 环境问题;如果空项目正常,再回头查原项目配置。参考来源:DevEco Studio 编译构建 FAQ、SDK Manager 使用说明、ArkTS 编译构建文档。
很喜欢HarmonyOS的卡片式设计,信息一目了然,操作也更便捷。
DevEco Studio 6.1.1 创建元服务编译失败,常见原因:
- 项目配置的
compileSdkVersion与本地 SDK 不匹配(需 ≥ API 12 或对应元服务版本)。 - 元服务模块缺少
type: "atomicService"或distroFilter配置错误。 - 签名证书未设置为元服务专用证书(HarmonyOS App/元服务需不同证书)。
检查build-profile.json5和signingConfigs配置,确保依赖库版本兼容。
该错误是因为 SDK 中 ets/build-tools/ets-loader/components 路径损坏或缺失导致。请按以下步骤修复:
- 关闭 DevEco Studio。
- 删除
E:\DevEcoStudio\sdk\default\openharmony\ets整个文件夹。 - 重新打开 DevEco Studio,进入 SDK Manager(设置 → SDK),勾选 HarmonyOS 下的 Ets 组件,点击应用并等待下载完成。
- 重新编译项目。
若仍失败,请检查该 SDK 路径权限是否为只读,或尝试切换 SDK 安装至其他非系统盘目录。


