gpt4 book ai didi

java - 如何修复 HiveMQ 中未解析的 DaggerSingletonComponent(MQTT 协议(protocol))

转载 作者:行者123 更新时间:2023-11-29 04:08:48 25 4
gpt4 key购买 nike

我尝试先设置创建客户端以测试 MQTT 是否正常工作,然后我将实现 connect() 方法。我下载了最新版本的 HiveMQ(一个用 Java 完成的开源 MQTT 实现),在将项目作为 Gradle 构建正确导入 Eclipse 并使用 GIT 后,我收到了一条错误消息。它说“无法解析 DaggerSingletonComponent”。我的程序根本无法运行。

我下载的开源链接:https://github.com/hivemq/hivemq-mqtt-client

我试过手动编辑构建文件,看看是否有一些代码遗漏了 dagger 的依赖项,但没有。

package com.hivemq.client.internal.mqtt.ioc;

import com.hivemq.client.internal.mqtt.netty.NettyEventLoopProvider;
import com.hivemq.client.internal.mqtt.netty.NettyModule;
import dagger.Component;
import org.jetbrains.annotations.NotNull;

import javax.inject.Singleton;

/**
* Singleton component for all clients. It exists the whole application lifetime.
*
* @author Silvio Giebl
*/
@Component(modules = {NettyModule.class})
@Singleton
public interface SingletonComponent {

@NotNull SingletonComponent INSTANCE = DaggerSingletonComponent.create();

@NotNull ClientComponent.Builder clientComponentBuilder();

@NotNull NettyEventLoopProvider nettyEventLoopProvider();
}


__________________________
For the module: NettyModule.class


package com.hivemq.client.internal.mqtt.netty;

import dagger.Module;

import dagger.Provides;
import io.netty.channel.epoll.Epoll;
import io.netty.channel.epoll.EpollEventLoopGroup;
import io.netty.channel.epoll.EpollSocketChannel;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;
import org.jetbrains.annotations.NotNull;

import javax.inject.Singleton;

/**
* @author Silvio Giebl
*/
@Module
public abstract class NettyModule {

@Provides
@Singleton
static @NotNull NettyEventLoopProvider provideNettyEventLoopProvider() {
if (Epoll.isAvailable()) {
return new NettyEventLoopProvider(EpollEventLoopGroup::new, EpollSocketChannel::new);
} else {
return new NettyEventLoopProvider(NioEventLoopGroup::new, NioSocketChannel::new);
}
}
}

错误信息:无法解析 DaggerSingletonComponent

最佳答案

Dagger 是一个在编译时生成依赖注入(inject)代码的库。提到的类是生成的类之一。

请使用gradle构建项目:

  1. 打开终端
  2. 导航到项目目录
  3. 执行 ./gradlew build (Linux/Mac) 或 gradlew build (Windows)

您需要确保目录 build/generated/source/apt/main/ 被配置为源目录,以便 IDE 获取生成的类。

那么在第一次使用 gradle 构建后,您应该能够使用 IDE 的构建方法。

关于java - 如何修复 HiveMQ 中未解析的 DaggerSingletonComponent(MQTT 协议(protocol)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56447008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com