我使用的是HiveMQ客户端1.0.1版,但我决定更新为最新发布的1.1版。我完全从头开始,将项目导入为Gradle项目并尝试构建。仅在忽略一些失败的测试后才能进行构建。我在3个不同的类中遇到3个错误。我意识到这很可能与Dagger依赖项注入工具有关,并且我已经成功构建了项目并将build/generated/source/apt/main/目录添加到了我的构建路径,正如我之前的堆栈文章所指出的那样,在该问题中我找不到DaggerSingletonComponent: How to fix DaggerSingletonComponent not resolved in HiveMQ (MQTT protocol)。这似乎是一个新问题,我不确定出什么问题。我尝试按项目进行重建,但错误仍然存​​在。我在下面留下了一些屏幕截图以及具体的错误。

HiveMQ:

https://github.com/hivemq/hivemq-community-edition

https://github.com/hivemq/hivemq-mqtt-client

错误:

未定义构造函数MqttChannelInitializer(MqttClientConfig,MqttConnAckFlow,MqttEncoder,MqttConnectHandler,MqttDisconnectHandler,MqttAuthHandler,Lazy)

构造函数MqttSession(MqttClientConfig,MqttSubscriptionHandler,MqttIncomingQosHandler,MqttOutgoingQosHandler)未定义

ConnectionModule类型的方法ProvideBootstrap(NettyEventLoopProvider,MqttChannelInitializer)不适用于参数(MqttClientConfig,NettyEventLoopProvider,MqttChannelInitializer)

屏幕截图:

java - 如何在HiveMQ Client中修复未定义的MqttChannelInitializer构造函数?-LMLPHP
java - 如何在HiveMQ Client中修复未定义的MqttChannelInitializer构造函数?-LMLPHP
java - 如何在HiveMQ Client中修复未定义的MqttChannelInitializer构造函数?-LMLPHP

最佳答案

在命令行上执行./gradlew clean build将修复您的错误。

但我也认为,针对您的用例的真正解决方案是创建一个新的空项目(gradle或maven),并将客户端库作为依赖项添加,如下所示:https://hivemq.github.io/hivemq-mqtt-client/docs/installation.html

09-28 07:26