HarmonyOS鸿蒙Next中使用ohpmmqtt库时,使用MQTTClient时报了错误

HarmonyOS鸿蒙Next中使用ohpmmqtt库时,使用MQTTClient时报了错误

MqttClient是class,在使用后报了这个 错误SyntaxError: the requested module ‘@normalized:Y&&&libmqttasync.so&’ does not provide an export name ‘MqttClient’ which imported by ‘&entry/src/main/ets/pages/Home&’

这是代码部分

aboutToAppear(): void {

 //1、创建mqtt客户端
 let mqttAsyncClient = new MqttClient({
  url: "tcp://mqtts.heclouds.com:1883",
  clientId: "test1",
  persistenceType: 1,
 })
 //2、连接ONENET
 let options: MqttConnectOptions = {
  //set userName and password
  userName: "5Vg70Qx4Wr",
  password: "version=2018-10-31&res=products%2F5Vg70Qx4Wr%2Fdevices%2Ftest1&et=1904540712&method=md5&sign=VI8XX%2F801LlH7pLWCLpD0Q%3D%3D",
  connectTimeout: 30,
  MQTTVersion: 4,
  serverURIs:["tcp://mqtts.heclouds.com:1883"],
 };
 mqttAsyncClient.connect(options).then((data: MqttResponse) => {
   console.log("mqtt connect success "+ JSON.stringify(data));
 }).catch((err: MqttResponse) => {
   console.log("mqtt connect fail"+JSON.stringify(err))
 })

}

使用MqttConnectOptions时不用报错,MqttClient会报错,MqttConnectOptions是interface


更多关于HarmonyOS鸿蒙Next中使用ohpmmqtt库时,使用MQTTClient时报了错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

这边使用给的代码可以正常运行,显示连接成功。libmqttasync.so是否加载正常呢?@ohos/mqtt的安装过程是否有什么错误提示?使用的DevEco Studio版本是什么?

图片

更多关于HarmonyOS鸿蒙Next中使用ohpmmqtt库时,使用MQTTClient时报了错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


导包不对,重新导入试试

在HarmonyOS鸿蒙Next中使用ohpmmqtt库时,MQTTClient报错可能是由于库版本不兼容或配置参数错误。请检查ohpmmqtt库的版本是否与鸿蒙Next系统匹配,并确保MQTTClient的配置参数(如broker地址、端口、clientId等)正确无误。此外,确认网络连接正常,且MQTT broker服务可用。

根据错误信息和代码分析,问题出在MQTTClient的导入方式上。错误提示表明模块没有正确导出’MqttClient’类。

解决方案:

  1. 确保正确导入ohpmmqtt库:
import { MqttClient, MqttConnectOptions } from '@ohos/ohpmmqtt';
  1. 检查SDK版本是否匹配,建议使用最新版本:
// package.json
"dependencies": {
  "@ohos/ohpmmqtt": "^1.0.0"
}
  1. 如果仍然报错,可以尝试使用动态导入方式:
let mqttModule = await import('@ohos/ohpmmqtt');
let mqttAsyncClient = new mqttModule.MqttClient({...});
  1. 确保在模块的oh-package.json5中正确声明了依赖:
"dependencies": {
  "@ohos/ohpmmqtt": "file:../../oh-package/ohpmmqtt"
}

问题可能源于库的导出声明不完整或构建配置问题。建议先检查导入语句是否正确,再验证库的完整性。

回到顶部