鸿蒙 项目中使用@ohos和@app引入报错
【鸿蒙5.0+开发适配要点】模块路径规范变更:弃用@ohos改用@kit命名空间(如@kit.NetworkKit替代@ohos.net.http)。资源引用规范:@app仅用于应用内资源,模块导入需用相对路径或模块名。依赖管理:通过ohpm安装第三方库,检查oh-package.json5配置。项目配置要求:SDK版本需设为API9+,在build-profile.json5中关联模块能力。典型
·
本文同步发表于我的微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新
一、模块路径规范变化
自鸿蒙5.0+版本开始,官方推荐使用 @kit命名空间替代旧版的 @ohos。原有的 @ohos开头的模块已逐步迁移至新的 @kit命名空间下。例如:
- 旧版写法:
import http from '@ohos.net.http'; - 新版写法:
import { http } from '@kit.NetworkKit';
若直接使用 @ohos或未正确引入 @kit模块,会导致编译报错。
二、@app路径的错误使用
@app通常用于引用 应用内资源(如 $r('app.media.image')),而非导入模块。若尝试通过 @app导入代码模块(如自定义工具类),需改为 相对路径或 模块名导入:
// 错误示例:使用@app导入模块
import utils from '@app/utils';
// 正确示例:使用相对路径或模块名
import utils from '../utils'; // 相对路径
import { utils } from '@library/utils'; // 模块名(需配置依赖)
三、依赖未正确安装
若使用第三方库或系统 @kit模块,需通过 ohpm(鸿蒙包管理器)安装依赖。例如:
- 安装
NetworkKit:
ohpm install @kit.NetworkKit
2. 在 oh-package.json5中检查依赖:
{
"dependencies": {
"@kit.NetworkKit": "^1.0.0"
}
}
四、项目配置问题
- SDK版本检查:
确认compileSdkVersion和compatibleSdkVersion设置为 API 9+(对应鸿蒙5.0)。 - 模块级配置:
在模块的build-profile.json5中确保已关联所需能力:
"buildOption": {
"arkOptions": {
"runtimeOnly": {
"packages": ["@kit.NetworkKit"]
}
}
}
五、示例:实现网络请求功能
错误代码:
import http from '@ohos.net.http'; // 旧版路径报错
正确代码:
import { http } from '@kit.NetworkKit'; // 新版路径
// 示例:发起GET请求
http.createHttp().request(
"https://api.example.com",
{
method: http.RequestMethod.GET,
header: { 'Content-Type': 'application/json' }
},
(err, data) => {
if (err) {
console.error(`请求失败: ${err.message}`);
} else {
console.info(`响应结果: ${data.result}`);
}
}
);
总结
- 迁移到
@kit命名空间:替换所有@ohos开头的模块为@kit对应模块。 - 资源与模块区分:
@app仅用于资源引用,模块导入使用相对路径或@kit路径。 - 依赖管理:通过 ohpm 安装缺失的依赖,并检查配置文件。
- 版本适配:确保项目配置与鸿蒙5.0+的SDK版本一致。
更多推荐


所有评论(0)