Сервер ADB не запускается в Unity

#android #unity3d #adb

#Android #unity3d #adb

Вопрос:

Я установил Unity 2019.4 с Android SDK / NDK. Сервер ADB не может запуститься с этой ошибкой:

 UnityEditor.Android.Command.RunWithShellExecute (System.String command, System.String args, System.String workingdir, System.String errorMsg) (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
UnityEditor.Android.ADB.StartServer () (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
UnityEditor.Android.ADB.Run (System.String[] command, UnityEditor.Android.Command WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
UnityEditor.Android.AndroidDeploymentTargetsExtension.GetKnownTargets (UnityEditor.DeploymentTargets.IDeploymentTargetsMainThreadContext context, UnityEditor.ProgressHandler progressHandler) (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
UnityEditor.DeploymentTargets.DeploymentTargetManager.GetKnownTargets () (at <7d90b28560b644ce87b8263efcc36eed>:0)
UnityEditor.Android.AndroidBuildWindowExtension <>c__DisplayClass31_0.<SpawnFetchTargetsThread>b__0 () (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
System.Threading.ThreadHelper:ThreadStart()
 

Я попытался запустить adb в терминале, но он также не смог запуститься. Я уже сделал обход через брандмауэр Windows. У него был такой вывод:

 * daemon not running; starting now at tcp:5037
could not read ok from ADB Server
* failed to start daemon
adb.exe: failed to check server version: cannot connect to daemon
 

Для этого я использую Windows.

Ответ №1:

Предполагая, что у вас установлено что-то еще, например, Oculus Developer Hub, это может противоречить установке Unity.

Что вам нужно сделать, это скопировать adb.exe , AdbWinApi.dll , и AdbWinUsbApi.dll из папки Unity Editor/Data/PlaybackEngines/AndroidPlayer/SDK/platform-tools туда, где они находятся в конфликтующей программе — в случае Oculus Developer Hub: C:/Program Files/Oculus Developer Hub/resources/bin . Затем перезагрузите компьютер, чтобы применить изменения. Пожалуйста, обратите внимание, что вам может потребоваться отключить эти процессы, чтобы запустить их.

Если это не сработает, установите ванильный Android SDK и скопируйте те же файлы из папки SDK / platform-tools в расположение конфликтующей программы. Перезагрузите компьютер.

Ответ №2:

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

Комментарии:

1. Аналогичный случай: у меня был открыт VS Code с помощью проекта Flutter с поддержкой сборки Android. Его закрытие устранило мою проблему с Unity.