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) {

        }

    }

}

しかし、OnClickListener または OnCheckedChangeListenser で「Switch」を使用すると、クラッシュします。

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スタジオでは、うまくいきませんでした。誰か理由を知っていますか?

4

2 に答える 2

1

最後に、問題を見つけます。MainActivity で 2 つのバンドルを使用し、SecondActivity の AsyncTask に doInBackground でこれらの 2 つのバンドルを使用します。しかし、最初の Bundle を SecondActivity に渡すだけで、2 番目の Bundle を渡すのを忘れています。doInBackground() の実行中にエラーが発生しました

于 2016-08-03T08:00:18.143 に答える