我正在尝试使用适用于 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,它不起作用。有人知道原因吗?