问题现象:DevEco Studio编译hap时报错:“ xxx can’t support crossplatform application. ”

问题解析:由于使用了跨平台工程模版,DevEco Studio在进行静态编译检查时会检查跨平台标签“@crossplatform”。而在工程中会使用一些当前不支持跨平台的HarmonyOS 接口导致静态编译检查失败。
解决方法:
1、找到 IDE 里配套 OH-SDK;如果是HarmonyOS Next开发,则是HarmonyOS 里带的oh-sdk。
简便方法:前提需保证工程使用SDK为正确的。使用DevEco Studio打卡任一工程,在工程中打开并查看任一d.ts文件,于文件名右键点击–>选择 打开范围–>选择 Explorer 点击,打开的文件窗口即为当前工程所使用的SDK路径,于文件窗口回到SDK根目录执行第2步。

2、找到文件:” api_check_util.js “。文件在SDK中的相对路径为:
|
1 |
sdk\HarmonyOS-NEXT-DB1\openharmony\ets\build-tools\ets-loader\lib\fast_build\system_api\api_check_utils.js |
新版本相对路径:
|
1 |
sdk\default\openharmony\ets\build-tools\ets-loader\lib\fast_build\system_api\api_check_utils.js |
3、在文件” api_check_util.js “中搜索关键字:CROSSPLATFORM_TAG_CHECK_ERROER,将其后边的 DiagnosticCategory.Error 修改为 DiagnosticCategory.Warning。
4、回到DevEco Studio 如果当前工程已编译过,先执行clean操作;之后执行操作: 点击文件–>选择 清理缓存 点击–> 勾选选项 –> 点击清除并重新启动。
