2017-02-22 32 views
3

Прежде всего, я уверен, что я правильно выполнил все шаги в руководстве Attaching MonoDevelop Debugger To An Android Device (что самое главное: включение «Разработка сборки» и «Отладка сценариев» в настройках сборки).Устройство Android не отображается в качестве цели отладки Unity3d

При построении & работает под управлением Android-устройства Unity, однако мое устройство (Samsung Galaxy S5, Android 6.0.1) просто не отображается как возможная цель отладки ни в MonoDevelop, ни в Visual Studio. Например, в Visual Studio, после нажатия на Debug -> Attach Unity Debugger, в открывшемся окне «Select Unity Unance» открывается только редактор Unity3d (Machine: local machine, Type: Editor). Отладка проекта Unity, который запускается в редакторе Unity, отлично работает, только отладка проекта, выполняемого на физическом устройстве Android, не работает. То же самое для MonoDevelop.

Я вижу, как устройство подключено и онлайн, делая

adb devices 

Я также могу назвать ADB команды оболочки (например, ls) на этом устройстве с помощью командной строки. Когда я открываю Android Studio, я также вижу устройство в качестве цели для Logcat и даже только что упомянутого приложения Unity Android в качестве отлаживаемого процесса (и при его выборе - все правильные журналы, ожидаемые от запущенного приложения).

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

  • два различных разработчик машины (как для Windows 10 с текущими обновлениями и без брандмауэров),
  • две разных сети (домашний & университет)
  • MonoDevelop, Visual Studio Community 2015, Visual Studio Professional 2017 RC (с соответствующими инструментами для Unity),
  • повторной установки Unity3d,
  • различных Unity3D проектов (стандартный пример проекта, а также собственный минимальный пример, состоящий только из текста и кнопки)
  • вручную добавлять android:debuggable="true" к AndroidManifest проекта и
  • в Visual Studio вручную подключить отладчик к устройству через deviceip: 5555 (в окне «Select Unity Instance» -> Input IP).

На устройстве, я попытался

  • превращающего телефон и снова,
  • очередь отладки USB от & на,
  • выбора приложения Unity как «отладки приложения» (в настройках разработчика) и включение/выключение «Ожидание отладчика» (также параметры разработчика),
  • подключение устройства через USB-кабель или через adb connect deviceip:5555 и
  • укореняя телефон.

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

EDIT

Хорошо, поэтому я получил некоторый прогресс. Когда я рассмотрел вывод LogCat из приложения, я обнаружил линии, такие как

Waiting for connection from host on [192.168.2.110:55416]... 

(.2.110 являющимся IP устройства) Так я вручную ввел что IP & порт в Visual Studio в «Выберите Unity Instance "окно -> Ввод IP и сразу же после этого, LogCat чтения

PlayerConnection accepted from [192.168.2.115] handle:0x1c 

(.2.115 быть моим разработчиком машины) Так соединение является там. Visual Studio просто не «распознает» (?) И не переключается в режим отладки, поэтому может останавливаться на контрольных точках. Кто-нибудь есть идея, как я могу заставить это сделать это?

+0

Вы решили это? У меня та же проблема, PlayerConnection принимается, но визуальная студия не перескакивает в режим отладки – D4rWiNS

+0

Не совсем, я только нашел обходное решение, которое я описал в одном из ответов. –

ответ

3

Ну, не совсем ответ, но я нашел способ отладить его в конце концов. Посреди всей продукции LogCat, я также обнаружил, что линия:

Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,defer=y,address=0.0.0.0:56785 

Исходя из этого порта (и фактическое устройство IP) и ввести его в Visual Studio в окне «Выберите Unity Instance» -> Ввод IP, отладчик, наконец, подключен.

Проблема заключается в том, что порт изменяется каждый раз, когда приложение запускается, поэтому для его отладки я всегда буду искать его. Также (это может быть совсем другая проблема), вывод Debug.Log или Console.WriteLine не попадает в отладчик. Единственный способ прочитать журнал сейчас - в AndroidStudio.

Так что да, вопрос до сих пор стоит, как же устройство не отображается в AndroidPlayer в Выберите Unity Instance Окно в Visual Studio (или по месту в MonoDevelop)?

+1

Ты, сэр, герой. –

1

Он появляется, если ваше Android-устройство подключено к Wi-Fi. Когда приложение начнет воспроизводиться, вы можете увидеть его в поле «Выберите Unity Instance», а затем вы можете его выбрать.

+0

К сожалению нет. В моем случае не имело значения, было ли устройство подключено через USB-кабель (Wi-Fi включен или выключен) или через Wi-Fi через adb. –

+0

Ну, я боюсь сказать, что это не всегда работает. Но я добился успеха несколько раз. Поэтому я просто подумал, что это тоже поможет. –