我正在尝试首先设置创建客户端以测试 MQTT 是否可以正常工作,然后我将实现 connect() 方法。我下载了最新版本的 HiveMQ(用 Java 完成的开源 MQTT 实现),在将项目正确导入为 Eclipse 中的 Gradle 构建并使用 GIT 后,我收到了一条错误消息。它说“DaggerSingletonComponent 无法解析”。我的程序根本无法运行。
我下载的开源链接:https ://github.com/hivemq/hivemq-mqtt-client
我尝试手动编辑构建文件以查看依赖项中是否有一些代码遗漏了匕首,但没有。
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 无法解析