Java.lang.ClassNotFoundException : Class io. 未找到reactivex.functions.Action

标签 java android stomp

我正在使用 rxjava 版本 v-2.2.6 和 naiksoftware/stompprotocolandroid v-1.6.4

我不断收到此错误

java.lang.ClassNotFoundException: Class io.reactivex.functions.Action not found   

任何时候我添加这个库实现

'com.github.NaikSoftware:StompProtocolAndroid:1.5.2' 到我的 build.gradle 文件,这是为什么?

public void connectStomp(View view) {

    List<StompHeader> headers = new ArrayList<>();
    headers.add(new StompHeader(LOGIN, "guest"));
    headers.add(new StompHeader(PASSCODE, "guest"));

    //mStompClient.withClientHeartbeat(10000).withServerHeartbeat(10000);

    resetSubscriptions();

    Disposable dispLifecycle = mStompClient.lifecycle()
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(lifecycleEvent -> {
    switch (lifecycleEvent.getType()) {
    case OPENED:
    Log.e(TAG, "Stomp connection opened");
    //toast("Stomp connection opened");
    break;
    case ERROR:
    Log.e(TAG, "Stomp connection error", lifecycleEvent.getException());
    //toast("Stomp connection error");
    mStompClient.reconnect();
    break;
    case CLOSED:
    Log.e(TAG, "Stomp connection closed");
    mStompClient.disconnect();
    resetSubscriptions();
    //toast("Stomp connection closed");
    // mStompClient.connect();
    break;
    case FAILED_SERVER_HEARTBEAT:
    Log.e(TAG, "Stomp connection opened");
    //toast("Stomp failed server heartbeat");
    break;
    }
    }, throwable -> {
    Log.e(TAG, "Error on subscribe topic", throwable);
    });

    compositeDisposable.add(dispLifecycle);

    // Receive greetings
    Disposable dispTopic = mStompClient.topic("/topic/greetings")
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(topicMessage -> {
    Log.d(TAG, "Received " + topicMessage.getPayload());
    //addItem(mGson.fromJson(topicMessage.getPayload(), EchoModel.class));
    }, throwable -> {
    Log.e(TAG, "Error on subscribe topic", throwable);
    });

    compositeDisposable.add(dispTopic);

    mStompClient.connect(headers);

}

最佳答案

NaikSoftware/StompProtocolAndroid 库未使用更新的代码,我在 Android 中集成 stomp 客户端时遇到了类似的问题。

请参阅下面的存储库以获取解决方案,将服务器 URL 和端口号替换为您的自定义端口和服务器 URL。

repo -https://github.com/NaikSoftware/StompProtocolAndroid

如果它解决了您的问题,请告诉我。

关于Java.lang.ClassNotFoundException : Class io. 未找到reactivex.functions.Action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55932450/

相关文章:

java - 使用 Nashorn 从脚本运行 Java

java - 使用 hibernate : psql: could not connect to server: Connection refused

python - Websocket 客户端没有收到任何消息

java - ActiveMQ 向 StompConnection 注册监听器

android - 将 NXP i.MX7D 连接到 Android Things Toolkit 应用程序

java - 作为客户端,如何获取 Stomp 队列或/和主题(它们的名称)列表?

java - 如何在雪豹上安装 java jdk 7

java - 为什么 Intellij-IDEA 会忽略我的 tomcat/conf/server.xml 上下文标记?

android - ViewModel + 数据绑定(bind)中的最佳实践和模式。 ViewModel中的ObservableField可以吗?

android - 如何在 OPPO 设备上启用 USB 调试而不在通知面板上显示警告消息