IDE编译报错：ERROR: SDK component missing解决方案
========================================

#### 问题现象

写好的脚本，在流水线中可以运行，但是放在IDE的Terminal中，无法编译，报错：

\> hvigor ERROR: SDK component missing. Please verify the integrity of your SDK.

#### 背景知识

[开发Hvigor插件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-plugin)：Hvigor允许开发者实现自己的插件，开发者可以定义自己的构建逻辑，并与他人共享。

#### 解决方案

此报错表示SDK路径已配置，但是路径中没有找到SDK。

*   **方案一：**
    
    原因可能是开发工具IDE的SDK版本与Command Line Tools的hvigor版本不兼容。
    
    *   按照官网文档在流水线配置[command-line-tools](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-command-line-building-app#section88316312414)，不配置环境变量DEVECO\_SDK\_HOME，编译的时候会自动找到command-line-tools的SDK；如果配置了DEVECO\_SDK\_HOME，就优先找DEVECO\_SDK\_HOME指向的。
    *   IDE的Terminal在打开的时候会注入环境变量DEVECO\_SDK\_HOME，指向的是ide里的SDK。
    
    在流水线中跑脚本，使用的是command-line-tools的SDK，与hvigor的版本配套；但是在IDE的Terminal中跑脚本，hvigor用的是command-line-tools里的版本，SDK用的是ide里的版本，两者不匹配，故导致报错。
    
    升级command-line-tools版本与IDE的SDK版本兼容即可解决问题。
    
*   **方案二：**
    
    通过以下步骤进行排查。
    
    1.  找到SDK所在目录，在IDE的Terminal中输入echo $env:DEVECO\_SDK\_HOME，SDK根目录不要指向default目录！！！
        
        ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/08/v3/Z9ZbF0_JS6eu50IW9Uq6BQ/zh-cn_image_0000002628565000.png?HW-CC-KV=V1&HW-CC-Date=20260709T134340Z&HW-CC-Expire=86400&HW-CC-Sign=FA0684763F6620E4542525C4CB87BF5CE2FCEE5301D997C4BE2B03655BB1891F "点击放大")
        
    2.  检查SDK路径下的文件放置顺序是否正确。检查各文件、目录是否有缺失，如有缺失，请将对应的文件补齐。确保这些文件和文件夹的名称都是正确的并存在，目录结构如下：
        
        ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/9f/v3/gBM0HetbRtKKtZT92kBfuA/zh-cn_image_0000002628405098.png?HW-CC-KV=V1&HW-CC-Date=20260709T134340Z&HW-CC-Expire=86400&HW-CC-Sign=711F3ECF998748FF3535504C884CB82215D7438367F78C10B574DE37B9DC2B3B)
        
    3.  检查sdk-pkg.json文件是否与IDE配套：
        *   在替换full SDK时可能会修改sdk-pkg.json文件的内容，导致该文件内容与IDE版本不配套（如非必要，请在替换full SDK时不要修改此文件）
        *   打开sdk-pkg.json文件，查看apiVersion字段是否与IDE支持的API匹配，两者必须要相同，否则就会出现找不到SDK的错误。
            
            ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/71/v3/NCx2Ms26RiCoZKfhR6D1Vg/zh-cn_image_0000002658924317.png?HW-CC-KV=V1&HW-CC-Date=20260709T134340Z&HW-CC-Expire=86400&HW-CC-Sign=6A472898D5DFD0ADFF7CAD2D34F54580AD3EDE7BABD976E7A328B2CEB8E0F4AD "点击放大")
            
    4.  如果上面几步都无效，检查工程是否做了一体化适配：
        *   执行同步工程的操作。
            
            ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/52/v3/4A9ELiQxT5iBed9hnpDK3w/zh-cn_image_0000002658804369.png?HW-CC-KV=V1&HW-CC-Date=20260709T134340Z&HW-CC-Expire=86400&HW-CC-Sign=34FD3A4924F55F30CFBCD4EE8F7665EB84996227E40AB55FAFA1DD98B78723E0 "点击放大")
            
        *   观察右侧Notifications中是否出现了Sync failed的提示。
            
            ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/96/v3/C9D0Mif4TaOp5WLq2PQIXw/zh-cn_image_0000002628565010.png?HW-CC-KV=V1&HW-CC-Date=20260709T134340Z&HW-CC-Expire=86400&HW-CC-Sign=220BB4BCB0D3412919D05ED359CAA810CA8949AAF696F6F1DED95663F1972C22 "点击放大")
            
        *   点击提示语中的Migrate Assistant，工程下方会打开Migrate Assistant的窗口，点击里面的Migrate按钮，待执行成功后再去编译。
            
            ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/7c/v3/agHRDr1vT-WkNd1I3kKhnw/zh-cn_image_0000002628405104.png?HW-CC-KV=V1&HW-CC-Date=20260709T134340Z&HW-CC-Expire=86400&HW-CC-Sign=61470357C2EA7B30CD929B6A4941DC650A12E0CD1E7950BDC10AFFD9FF09F5EA "点击放大")
            
    5.  检查工程是否配置了hvigor版本：
        
        如果有，需要删除，因为目前都是使用一体化的版本，版本自带有hvigor工具。删除之后重新同步工程。
        

#### 常见FAQ

Q：使用高版本API, Command Line Tools工具(最新版本)打包报错:hvigor ERROR: 00303168 Configuration Error?

A：是因为SDK版本低导致的，需要将build-profile.json5文件里面compatibleSdkVersion字段删除或者将字段后面的API18改成19，就能成功打包。

#### 总结

*   查看IDE和Command Line Tools的版本对应关系，可找到对应版本的[下载链接](https://developer.huawei.com/consumer/cn/download/command-line-tools-for-hmos)，确保Build Version与IDE版本一致。
*   查看代码使用的hvigor版本：在工程级hvigorfile.ts加一行代码。
    
    console.info(require.resolve('@ohos/hvigor'))
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/2b/v3/yu9FJB-KQTeDeXvmprLA8A/zh-cn_image_0000002658924323.png?HW-CC-KV=V1&HW-CC-Date=20260709T134340Z&HW-CC-Expire=86400&HW-CC-Sign=8342E8113A4F109B412B900160E81846D8631084F0171D41526F2F2020816B59 "点击放大")
    
*   查看代码使用的SDK版本：在工程/.hvigor/outputs/build-logs/build.log搜索OpenHarmony。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ae/v3/b6aUJn2sSuuoDTpK8QfBRw/zh-cn_image_0000002658804375.png?HW-CC-KV=V1&HW-CC-Date=20260709T134340Z&HW-CC-Expire=86400&HW-CC-Sign=7B541ECA1A97B93B705899BDFD21C83171155AFD5736303C2EDF88FEC18EA5D9 "点击放大")