【问题标题】:android Websocket socket.io nullpointerandroid Websocket socket.io 空指针
【发布时间】:2012-10-10 01:49:02
【问题描述】:
theButton = (Button) findViewById(R.id.button5);

client = new SocketIOClient(URI.create("http://192.168.0.157:8080"), new SocketIOClient.Handler() {
        @Override
        public void onConnect() {
            Log.e("WS", "Connected!");
        }

        @Override
        public void on(String event, JSONArray arguments) {

        theButton.setBackgroundColor(Color.BLACK);
            Log.e("WS", "Got event "+event+":"+arguments.toString());
        }

        @Override
        public void onDisconnect(int code, String reason) {

            Log.e("WS", "Disconnected! Code: "+code+" Reason:"+reason);
        }

        @Override
        public void onError(Exception error) {
            Log.e("WS", "+++ Error +++"+error);
        }
    });

    client.connect();

问题是,如果我在 Event Funktion 中更改 BackgroundColor,我会得到一个 NullPointer 异常:

E/AndroidRuntime(16409):致命异常:Thread-11864 E/AndroidRuntime(16409): java.lang.NullPointerException E/AndroidRuntime(16409):在 com.fritsch.cpu.SocketIOClient.cleanup(SocketIOClient.java:183) E/AndroidRuntime(16409):在 com.fritsch.cpu.SocketIOClient.access$0(SocketIOClient.java:181) E/AndroidRuntime(16409):在 com.fritsch.cpu.SocketIOClient$2.onError(SocketIOClient.java:152) E/AndroidRuntime(16409):在 com.fritsch.cpu.WebSocketClient$1.run(WebSocketClient.java:125) E/AndroidRuntime(16409): at java.lang.Thread.run(Thread.java:856)

如果我在初始后更改 BG 颜色,它可以正常工作。我认为问题是 Websocket 的线程。

【问题讨论】:

  • 你在findViewById之前做过setContentView吗?

标签: android multithreading nullpointerexception socket.io


【解决方案1】:

我不认为你可以在你的线程中改变 UI,我认为你可以尝试使用 Handler 来处理 UI 更新。

【讨论】:

    猜你喜欢
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多