我正在使用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库未使用更新的代码,在将stomp客户端集成到android时遇到了类似的问题。
请参阅下面的存储库以获取解决方案,用自定义端口和服务器URL替换服务器URL和端口号。
回购-https://github.com/NaikSoftware/StompProtocolAndroid
让我知道是否可以解决您的问题。
运行程序时出现java.lang.NullPointerException - java我有4节课。一个是抽象实体类,一个是球类,一个是主类,另一个是屏幕类。球类扩展了实体类,并具有5个变量。屏幕功能具有绘制方法:public void paint(Graphics g){ super.paint(g); ball.paint(g); } 当然,要使用ball.paint,需要为其创建一个对象。因此,我将球对象:Ball ball; 然后将…
java:继承 - java有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…
常量dspace错误java.lang.OutOfMemoryError:Java堆空间 - java我有一个DSpace服务器,从4.3版升级到5.1版后,它在几个小时后不断停止工作,并出现以下错误: java.lang.OutOfMemoryError:Java堆空间我已经阅读了相同问题的答案,但它们并没有帮助我。我的JAVA_OPTS:-Xmx4096M -Xms4096M -Dfile.encoding=UTF-8 -Dsun.jnu.encodin…
Java-如何将此字符串转换为日期? - java我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…
JAVA 8具有任何匹配属性的对象的过滤器列表 - java我的要求是通过匹配任何属性的字符串来过滤对象列表。例如,假设Contact类具有三个属性:街道,城市,电话。我知道java流过滤器是如何工作的,在这里我必须将输入字符串与每个属性进行比较,如下所示:contactList.stream().filter(contact -> contact.getStreet().equals("dubai&…