2014-10-27 3 views
3

Я сделал приложение для своего телефона Android для управления роботом-автоматом через малину Pi. Код работает, но теперь я пытаюсь перенести приложение в приложение Android Wear. Однако, когда я пытаюсь запустить приложение на устройстве Wear, он запускается при запуске. Из журнала ошибок он исходит от SetOnClickListeners. Как исправить эти ошибки? Заранее спасибо!setOnClickListener отключает мое приложение для ношения

редактировать: Ошибки, приведенные LogCat являются RuntimeExceptions и NullPointerException http://puu.sh/ctfF4/49f0abe2ef.png

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    buttonConnect = (Button) findViewById(R.id.buttonConnect); 
    buttonConnect.setOnClickListener(this); 

    buttonDisconnect = (Button) findViewById(R.id.buttonDisconnect); 
    buttonDisconnect.setOnTouchListener(this); 

    buttonReverse = (Button) findViewById(R.id.buttonReverse); 
    buttonReverse.setOnTouchListener(this); 

    buttonLeft = (Button) findViewById(R.id.buttonLeft); 
    buttonLeft.setOnTouchListener(this); 

    buttonForward = (Button) findViewById(R.id.buttonForward); 
    buttonForward.setOnTouchListener(this); 

    buttonRight = (Button) findViewById(R.id.buttonRight); 
    buttonRight.setOnTouchListener(this); 

} 

Не уверен, что если полезно:

@SuppressLint("ClickableViewAccessibility") 
@Override 
public boolean onTouch(View v, MotionEvent event) { 

    if ((R.id.buttonForward == v.getId())) { 
     switch (event.getAction()) { 

      case MotionEvent.ACTION_DOWN: 
       socketCommand("forward"); 
       break; 
      case MotionEvent.ACTION_UP: 
       socketCommand("stop"); 
       break; 
     } 
    } 

    else if ((R.id.buttonReverse == v.getId())) { 
     switch (event.getAction()) { 

      case MotionEvent.ACTION_DOWN: 
       socketCommand("backwards"); 
       break; 
      case MotionEvent.ACTION_UP: 
       socketCommand("stop"); 
       break; 
     } 
    } 

    else if ((R.id.buttonRight == v.getId())) { 
     switch (event.getAction()) { 

      case MotionEvent.ACTION_DOWN: 
       socketCommand("right"); 
       break; 
      case MotionEvent.ACTION_UP: 
       socketCommand("stop"); 
       break; 
     } 
    } 

    else if ((R.id.buttonLeft == v.getId())) { 
     switch (event.getAction()) { 

      case MotionEvent.ACTION_DOWN: 
       socketCommand("left"); 
       break; 
      case MotionEvent.ACTION_UP: 
       socketCommand("stop"); 
       break; 
     } 
    } 

    return false; 
} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.buttonConnect: { 

      System.out.println("ONCLICK CONNECT"); 
      SocketConnect.connect(); 
      break; 
     } 
     case R.id.buttonDisconnect: { 
      SocketConnect.closeConnection(); 
      break; 
     } 

    } 
} 

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

+0

, пожалуйста, добавьте полную ошибку на ваш вопрос – Paul

+0

Готово. A NullPointerException – Riekelt

ответ

0

Возможно, вы создаете версию одного из ваших существующих макетов для работы с требованиями к dpi на устройстве для ношения Android, нет?

Я уверен, вы не имеете один или несколько из следующих представлений с этими указанными идентификаторами в файле activity_main.xml:

buttonConnect 
buttonDisconnect 
buttonReverse 
buttonLeft 
buttonForward 
buttonRight 

Который приведет к NullPointerException.

+0

Я сделал свой макет в rect_activity_main.xml, так как это будет мой предполагаемый экран. Я оставил action_main нетронутым, с WatchViewStub на месте. Я попробую там, спасибо! – Riekelt

+0

Спасибо, что сделал это для меня! Невозможно дотронуться до функциональности, так как моя малина что-то компилирует! – Riekelt

+0

Прохладный! Примите мой ответ, если это будет полезно. С уважением, Майк –

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