2016-08-02 2 views
0

Я пытаюсь создать приложение, используя библиотеку calimero для KNX. В моем приложении я использую кнопки, переключатели, переключатели и т. Д. Для включения/выключения подсветки. С «Button» все работает хорошо. Я могу включить/выключить свет или открыть/закрыть занавески.android studio: java.lang.RuntimeException: Произошла ошибка во время выполнения doInBackground()

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, это крах.

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 и андроид программирования. Можете ли вы помочь с этой проблемой? Я не могу понять, почему эта работа для кнопки, но не для «переключателя».

Спасибо заранее

UPDATE

скопировать мой код и попробовать с затмением. Все работает нормально. Я могу включить/выключить свет, который я хочу, и нет ошибки. С андроид-студией это не сработало. Кто-то знает причину?

+0

Вы можете опубликовать stacktrace – Paras

+0

@pArAs uncaughtException java.lang.RuntimeException: Произошла ошибка при выполнении doInBackground(), которая «все для чего» получен с stacktrace – kai

+0

Добавить общий блок catch и распечатать исключения .. catch (final Exception e) {StackTraceElement trace [] = e.getStackTrace(); для (StackTraceElement aTrace: trace) { Log.e (LOG_TAG, aTrace.toString()); }} – W0rmH0le

ответ

1

Я пробовал с ToggleButton и Switch в Eclipse. Все работает хорошо. Я поставил именно то, что использовал в андроид-студии. Я копирую весь код без каких-либо изменений. Не могу понять проблему.

1

И наконец, я нахожу проблему. Я использую 2 Bundle в MainActivity, и я использую эти 2 Bundle в doInBackground для моей AsyncTask в SecondActivity. Но я просто передаю первый Bundle для SecondActivity, и я забыл передать второй Bundle. Итак, я получил ошибку при выполнении doInBackground(). Какую глупую ошибку я сделал ...

Смежные вопросы