Java.lang.ClassNotFoundException:找不到类io.reactivex.functions.Action

时间:2019-05-01 06:31:55

标签: 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);

}

1 个答案:

答案 0 :(得分:0)

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

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

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

让我知道它是否可以解决您的问题。