0
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): java.lang.Thread.run(Thread.java:856) で

初期化後に BG Color を変更すると、正常に動作します。問題はWebsocketのスレッドだと思います。

4

1 に答える 1