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