2011-12-15 2 views
0

내 에뮬레이터에서 내 응용 프로그램을 디버그 할 수 없습니다. "응용 프로그램 ... 디버거가 연결되기를 기다리고 있습니다.이 문제는 이전에 문제가 아니 었습니다. 프로그램 된 달을 프로그램 디버그하려고했습니다. 전 심지어 사람들은 디버거에 부착하지왜 안드로이드 에뮬레이터와 이클립스를 사용하여 디버깅을 시도 할 때 디버거가 연결되지 않습니까?

나는 주위 검색과 같은이 문제에 대한 일반적인 해결책을 발견 :. 허가 "android.permission.SET_DEBUG_APP"를 사용 응용 프로그램 태그 안드로이드를 가진 : 디버깅 = "사실"이 질문에서 발견 Attaching debugger - android problem하지만 확인 후, 내 애플 리케이션은 이미 이러한 설정을 가지고 발견했습니다.

나는 또한 'USB 디버깅' 설정> 응용 프로그램> 개발에서 설정이 선택되어 있는지 확인하십시오. 나는 또한 항상 일식에 대한 새로운 업데이 트를 확인합니다. 일식 업데이트 후이 문제가 발생하기 시작했다고 생각합니다. 누구든지이 문제에 대한 해결책을 찾았습니까? 정말 멋진 앱으로 작업 해 왔지만 UI를 만들 수 있었지만 이전에하지 못했던 것들을 구현하면서 디버깅 할 수 있어야합니다. 디버깅이 중요하지 않고 느려지 게됩니다. .

+0

실행중인 시스템은 무엇입니까? 에뮬레이터를 실행하고 명령 행에서 adb를 호출 해보십시오 : adb 디바이스. 너 뭐가 보이니? –

+0

윈도우 7 64 비트입니다. 나는 그것을했고 나의 에뮬레이터가 나타날 것이다. 또한 Eclipse를 시작하기 전에 에뮬레이터를 시작하려고 시도했습니다. 난 그냥 모든 것을 제거하고 지금은 작동합니다. – 8oh8

답변

2

요즘 안드로이드 도구 15 이후로이 문제가있었습니다. 제가 발견 한 해결 방법은 이클립스를 시작하기 전에 에뮬레이터를 랜치하는 것입니다. 그렇다면 제대로 작동하는 것 같습니다.

+0

시도해 보니 제대로 작동하지 않았습니다 ... 처음부터 시작하는 것처럼 모든 일식, 일식, ADT 및 SDK를 제거한 결과 이제는 제대로 작동합니다. 내 자신의 질문에 답하는 것에 대한 생각은 있었지만 여전히 그 문제의 원인을 알지 못합니다. 나는 이것이 소프트웨어 부패의 예라고 생각한다. – 8oh8

0

안드로이드 소스에 따르면 os는 디버거가 충분히 길게 유휴 상태가 될 때까지 무한 루프에 앉아 회전합니다. 디버그 일시 중지 버튼을 누르고 1.5 초를 기다린 다음 다시 시작을 눌러 디버거를 유휴 상태로 만들 수 있습니다. 그 후 디버거가 연결됩니다.

/* 
    * There is no "ready to go" signal from the debugger, and we're 
    * not allowed to suspend ourselves -- the debugger expects us to 
    * be running happily, and gets confused if we aren't. We need to 
    * allow the debugger a chance to set breakpoints before we start 
    * running again. 
    * 
    * Sit and spin until the debugger has been idle for a short while. 
    */ 
    while (true) { 
     long delta = VMDebug.lastDebuggerActivity(); 
     if (delta < 0) { 
      System.out.println("debugger detached?"); 
      break; 
     } 

     if (delta < MIN_DEBUGGER_IDLE) { 
      System.out.println("waiting for debugger to settle..."); 
      try { Thread.sleep(SPIN_DELAY); } 
      catch (InterruptedException ie) {} 
     } else { 
      System.out.println("debugger has settled (" + delta + ")"); 
      break; 
     } 
    }  
0

스레드 창을 표시하지 않도록하십시오. @arcadoss가 계시 했으므로 디버거는 일정 기간 동안 유휴 상태 여야하며 스레드 창은 지속적으로 스레드의 뷰를 새로 고칩니다.

관련 문제