【问题标题】:koush AndroidAsync webSocket nullpointerexceptionkoush AndroidAsync webSocket nullpointerexception
【发布时间】:2015-06-15 20:55:32
【问题描述】:

我尝试使用 AndroidAsync 库。这是一个代码示例:

    AsyncHttpClient.getDefaultInstance()
            .websocket(url, null, new AsyncHttpClient.WebSocketConnectCallback() {
                @Override
                public void onCompleted(Exception ex, WebSocket webSocket) {
                    Log.i(LOG_TAG, "onCompleted");
                    if (ex != null) {
                        Log.e(LOG_TAG, "ex != null");
                        Log.e(LOG_TAG, ex.toString());
                        ex.printStackTrace();
                        return;
                    }

                    if (webSocket == null) {
                        Log.e(LOG_TAG, "1 webSocket == null");
                    } else {
                        Log.w(LOG_TAG, "1 webSocket != null");
                    }

                    webSocket.setStringCallback(new WebSocket.StringCallback() {
                        public void onStringAvailable(String s) {
                            Log.i(LOG_TAG, "setStringCallback");
                            System.out.println("I got a string: " + s);
                        }
                    });'

在我的情况下,ex == null 但 webSocket == null。 nullpointerexception 在库代码中被捕获。 但是我可以使用这个插座吗?即使回调中没有异常,它也为null,这看起来很奇怪。

【问题讨论】:

  • 如果webSocket为null,你希望如何使用它?
  • 抱歉,打错了。编辑了原帖。 ex 实际上是空的。我没有任何异常,因此无法理解为什么套接字也为空。

标签: android androidasync-koush


【解决方案1】:

我遇到了同样的问题,其中一个解决了这个问题。 如果你使用 XAMPP 启动 Apache 和 Tomcat。 当您定义系统中的 Tomcat 版本时,将您的服务器项目导出到 war 文件中。 仔细检查您为 websocket 选择的端口和 ip。

【讨论】:

    【解决方案2】:

    如果您要连接的服务器使用响应代码(HTTP 样式,即 405)拒绝连接。然后服务器在尝试连接期间基本上关闭了连接。

    这不会引发异常,因为没有超时或网络问题。此外,由于服务器不允许建立连接,因此没有返回 websocket。

    【讨论】:

      猜你喜欢
      • 2015-08-01
      • 1970-01-01
      • 2014-12-16
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多