Не удается подключить отладчик Android Studio к процессу Android

Я не могу подключить отладчик Android Studio к процессу отлаживаемого приложения. У кого-нибудь еще была эта проблема? В основном я не могу перечислить мое приложение в Choose Process Диалог.

Я выбираю Attach debugger to Android process:

Присоединить отладчик к процессу Android

А потом, вот как Process selection Диалог из Android Studio выглядит так:

В списке нет приложений для отладки

Любые идеи, почему мое приложение не отображается в Choose Process список?

Хотя, DDMS видит мое приложение в Devices | logcat список:

code> Устройства | список logcat </ code Устройства | список logcat

Android Monitor также видит приложение в Devices список:

Android-монитор | Список устройств

Я пробовал эти действия:

  • Перезапуск MacBook
  • Перезапуск устройств: пробовал с Samsung Galaxy Note II N7100 (4.3) и Samsung Galaxy S4 (4.4.2)
  • повторное включение Settings->Developer Options на устройствах
  • повторное включение Settings->Developer Options->USB debugging на устройствах
  • Перезапуск adb запустив adb kill-server а также adb start-server
  • Повторное подключение устройства из MacBook и / или подключение к другому USB-порту
  • Запуск виртуального устройства Genymotion на MacBook
  • restarting in TCP mode port: 5555 запустив adb tcpip 5555 а затем подключиться к нему с adb connect 192.168.1.87
  • Waiting more & Restart когда получил эту ошибку говоря ADB not responding. You can wait more, or kill "adb" process manually and click 'Restart'Errors in ADB:ddms: '$ANDROID_HOME/platform-tools/adb,start-server' failed -- run manually if necessary Скриншот ошибки

Обновить:

Я заметил, что устройство появляется несколько раз в Android DDMS -> Devices | logcat список. Если я выберу 1-е устройство из списка, оно показывает, что есть No debuggable applications, но я выбираю последнее устройство (4-е на скриншоте), я вижу свое отлаживаемое приложение. Смотрите скриншоты: 1-й и 4-й. Несмотря на то, что в списке есть только 1 устройство, показывающее отлаживаемое устройство и приложение, процесс все равно не отображается в Choose Process Диалог.

13 ответов

Решение

Итак, наконец-то, я заработал:

Checking 'Show all processes' checkbox!

НО, как вы видите в вопросе, флажок был в начале, поэтому было несколько проблем.

Подводя итог, необходимо выполнить следующие действия:

  • Убить всех adb процессы (использование ps -x | grep adb а также kill -9 [process id])
  • adb start-server в терминале
  • Переподключить устройство
  • adb devices (чтобы убедиться, что устройство успешно подключено)
  • Удостовериться Android DDMSDevices | logcat показывает ваше приложение и только одно устройство в списке.
  • Проверьте Show all processes флажок. Посмотреть скриншот

Я решил так

а. Закрытая студия Android
б. Сделал adb kill-server из терминала. Также проверьте, что процесс adb также убит из окна Запуск процессов на ПК.
с. Запущена студия Android
д. Android Studio снова попыталась инициализировать adb и вернулась к работе.

Я решил это, перейдя в терминал и выполнив:

  • adb kill-server
  • adb start-server

Затем я нажал на кнопку "присоединить отладчик" и смог использовать ее как обычно

В прошлый раз у меня была похожая проблема, может быть, это потому, что вариант сборки 'release' (который вы можете установить в разделе Варианты сборки) был выбран по ошибке, только вариант отладки является отлаживаемым, надеюсь, это может быть полезно для некоторых друзей

Это то, что сработало для меня, и это просто, перейдите в Инструменты->Android-> Включить интеграцию с ADB, щелкните по нему и отметьте его как выбранный, если не выбран, это позволит вашему экземпляру genymotion подключиться к ADB, но если это не сработает, тогда, если Вышеупомянутая настройка выбрана, затем отметьте невыбранную и подождите, пока ADB обновится (несколько секунд), затем снова перейдите к той же настройке и нажмите на нее, чтобы отметить выбранную, это перезапустит ADB и подключит его. Это прекрасно работает для меня каждый раз, когда я вижу эту проблему.

Я только что столкнулся с этим. Я вырывал свои волосы и делал все, что было размещено здесь. Я думал, что мог бы добавить сюда решения, если бы все попробовали все. Я решаю это путем создания отладочного варианта сборки.

Поэтому я сделал PR, и он был объединен, к сожалению, мой флаг отладки на моем собственном варианте сборки был отключен, когда я вернул исходный код, поэтому мне просто нужно включить его снова:

в вашем файле build.gradle:

android {
   ...
   buildTypes {
      ...
      my_build_type {
            minifyEnabled false
            shrinkResources false
            debuggable true    // was false before  
      }
   }
}

Также убедитесь, что этот вариант сборки был установлен до того, как вы соберете приложение на устройство:

То же самое случилось со мной, основной причиной этой проблемы было прерывание (отключение сети или принудительное закрытие) при обновлении любого из плагинов (в моем случае kotlin)РешениеДля Mac: настройки Goto (shortkey: cmd + ,) вот изображение этого

Для окон:(короткая клавиша: ** Ctrl + Alt + S) или через меню
вот изображение этого

затем в левой панели найдите Languages ​​and Frameworks -> kotlin/java updaes и выберите его. В правой панели будет опция (кнопка) для обновления плагина. обновить плагин. вот изображение этого

Выйдите и перезапустите андроид студию. Теперь вы сможете отлаживать все доступные запущенные процессы.

  1. Закройте Android Studio.
  2. Убить adb с терминала adb kill-server. Откройте студию Android, затем подключите отладчик. Вы сможете увидеть свой проект.

Вам не нужно закрывать андроид-студию, так как я видел много советов, вы можете использовать терминал отсюда. Таким образом: 1 Зайдите в терминал в Android Studio; 2 Сделал adb kill-server чтобы убить процесс; 3 Работал ли здесь adb start-server 4. Проверьте, подключены ли устройства с устройствами adb

Теперь это должно работать!

В моем случае я просто отключаю и подключаю кабель от телефона. Процесс был указан, и я смог присоединить отладчик

В дополнение ко всем ответам ранее, если вы добавите точки останова, которые оценивают и регистрируют, возможно, один из них вызовет исключение Null Pointer. Так что иди запустить -> viewBreakpoints... -> отменить выбор всех из них.

это сработало для меня: сначала найдите, есть ли у вашего apk возможность отладки или версия выпуска (которую вы не можете отлаживать) и т. д.

Основные различия - это флаг отладки и ключи подписи:

Для отладочных сборок apk будет подписан ключами подписи отладки по умолчанию с включенным флагом отладки.

Для ключей выпуска вам нужно будет явно указать ключи для подписи, и флаг отладки будет отключен, чтобы его нельзя было отладить.

Proguard можно включить для релизных сборок. (также для отладочных сборок, но не рекомендуется). Этот шаг должен быть выполнен явно и по умолчанию является ложным.

Отладка выпуска Тип сборки без создания Подписана APKhttps://stackoverflow.com/Questions/7085644/how-to-check-if-apk-is-signed-or-debug-buildhttps://stackoverflow.com/questions / 38864358 / difference-between-debug-and-release-apks#:~:text=Major%20differences%20are%20the%20debug, что% 20it%20 не может отладить% 20be%20 .

Возможно, это не решение, но в конце концов я просто переключился на использование устройства-эмулятора (Nexus 5) вместо физического устройства.

Я пробовал все, что было сказано выше, в том числе:

  • команды adb
  • обновление студии Android, перезагрузка и т. д.
  • варианты сборки
  • подключите и отключите кабель.
Другие вопросы по тегам