0

我正在尝试使用适用于 KNX 的 calimero 库来制作应用程序。在我的应用程序中,我使用一些按钮、开关、切换按钮等来打开/关闭灯。使用“按钮”,一切正常。我可以打开/关闭灯或打开/关闭窗帘。

private class button9OnClickListener implements View.OnClickListener {
    public void onClick(View view){

        try {
            falseTask dt = new falseTask();
            String adr = "5/1/0";
            dt.execute(adr);

        } catch (Exception e) {

        }

    }

}

但是当我将“Switch”与 OnClickListener 或 OnCheckedChangeListener 一起使用时,它会崩溃。

private class switch1OnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener {
    public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
        if(compoundButton.isChecked()) {

            try {
                trueTask dt = new trueTask();
                String adr = "5/4/6";
                dt.execute(adr);
            } catch (Exception e) {
                e.printStackTrace();
            }


        } else {

            try {
                falseTask dt = new falseTask();
                String adr = "5/4/6";
                dt.execute(adr);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

}

问题如下:

uncaughtException   java.lang.RuntimeException: An error occured while executing doInBackground()

这是我的 doInBackground

        protected String doInBackground(String...strings){

        String adr = strings[0];

        try {

            final InetSocketAddress localEP = new InetSocketAddress(InetAddress.getByName(hostip), 0);
            final InetSocketAddress remoteEP = new InetSocketAddress(remoteip, knxServerPort);

            knxLink = new KNXNetworkLinkIP(KNXNetworkLinkIP.TUNNEL, localEP, remoteEP, true, TPSettings.TP1);

            pc = new ProcessCommunicatorImpl(knxLink);
            pc.write(new GroupAddress(adr), true);
            knxLink.close();

        }
        catch (final KNXException e) {

        }
        catch (final UnknownHostException e) {

        }

        return null;
    }

我是 java 和 android 编程的新手。你能帮忙解决这个问题吗?我不明白为什么这适用于“按钮”而不适用于“开关”。

先感谢您

更新

我复制我的代码并尝试使用 Eclipse。一切正常。我可以打开/关闭我想要的灯并且没有错误。使用android studio,它不起作用。有人知道原因吗?

4

2 回答 2

1

最后我发现了问题。我在 MainActivity 中使用 2 个 Bundle,并在 doInBackground 中将这 2 个 Bundle 用于 SecondActivity 中的 AsyncTask。但是我只是将第一个 Bundle 传递给 SecondActivity,而我忘记传递第二个 Bundle。所以我在执行 doInBackground() 时出错了我犯了什么愚蠢的错误......

于 2016-08-03T08:00:18.143 回答
1

我尝试在 Eclipse 中使用 ToggleButton 和 Switch。一切都很好。我把我在 android studio 中使用的东西完全放在了一起。我复制所有代码而不做任何更改。无法理解问题。

于 2016-08-03T02:33:49.703 回答