시스템 : Windows 10
내 문제 : 사용자 정의 SDK를 가리 키도록 Genymotion을 설정해도 아무런 영향이 없습니다. 나는 여전히 :
Android에서 프로젝트를 시작할 수 없습니다 : smartsocket 리스너를 설치할 수 없습니다 : 127.0.0.1:5037에 바인드 할 수 없음 : 각 소켓 주소 (프로토콜 / 네트워크 주소 / 포트)는 한 번만 사용할 수 있습니다. (10048) ADB 서버에서 확인을 읽지 못했습니다 * 데몬을 시작하지 못했습니다 * 오류 : 데몬에 연결할 수 없습니다
내가 발견 한 것은 시스템 전체에서 사용되는 ADB 버전에 차이가 있다는 것입니다. 내가 찾은 명령은 다음과 같습니다.
where /r C:\ adb.exe
결과는 다음과 같습니다.
C:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe
C:\Program Files\Genymobile\Genymotion\tools\adb.exe
C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe
C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb backup\adb.exe
각 디렉토리로 이동하여 다음을 실행하십시오.
adb.exe version
Expo가 ADB 버전을 실행하고 있음을 알 수있었습니다.
Android Debug Bridge version 1.0.36
Revision fd9e4d07b0f5-android
사용자 정의 SDK를 사용하는 Genymotion의 버전은 다음과 같습니다 (c : \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe) :
Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-android
테스트로 나는 adb 파일 (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll)을
c:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe
백업 폴더에 넣습니다. 그런 다음에있는 adb 파일을 옮겼습니다.
c:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe
같은 위치에. 나는 다음과 같이 adb를 죽였다.
adb kill-server
내 Genymotion 장치가 이미 실행되어 adb 서버가 자동으로 다시 시작되었습니다. Expo XDE 내부의 "다시 시작"버튼을 누르면 즉시 작동하기 시작했습니다. 오전 1시 13 분 4 초에 다시 시작 버튼을 누른 로그는 다음과 같습니다.
12:45:53 AM
could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: Only one usage of each socket address (protocol/network address/port) is normally permitted. (10048)
could not read ok from ADB Server
* failed to start daemon *
error: cannot connect to daemon
1:13:04 AM
Restarting project and clearing packager cache (Hold shift while clicking restart to avoid clearing cache).
1:13:11 AM
Starting React Native packager...
1:13:17 AM
Scanning 543 folders for symlinks in C:\Users\kyle\git\betalog\node_modules (49ms)
1:13:17 AM
1:13:19 AM
Couldn't adb reverse: closed
1:13:20 AM
Project opened! You can now use the "Share" or "Device" buttons to view your project.
1:13:26 AM
Couldn't adb reverse: closed
1:13:26 AM
Downloading latest version of Expo
1:13:28 AM
Installing Expo on device
1:13:33 AM
Opening on Android device
1:13:56 AM
Building JavaScript bundle: finished in 59643ms.
1:14:01 AM
Dependency graph loaded.
1:14:03 AM
Your JavaScript transform cache is empty, rebuilding (this may take a minute).
결론 : Genymotion과 Expo는 동일한 버전의 adb를 사용해야 Expo가 시뮬레이션 된 장치와 올바르게 통신 할 수 있습니다. Genymotion이 Android SDK 위치를 가리키고 Expo XDE에 동일한 버전이 있는지 확인하면 장치간에 올바른 통신이 가능합니다. Expo XDE 버전을 SDK 위치로 옮겼지만 다른 방법으로 이동할 수 있습니다 (sdk ADB 파일을 가져 와서 Expo XDE 리소스 위치에 배치).
추신 : 나는이 문제와 관련된 stackoverflow 게시물을 모두 보았습니다. 내 작업 관리자가 3 개의 adb.exe 인스턴스를 실행 중임을 보여줍니다. 당신이 그들 중 하나를 죽이면 그들은 다시 돌아옵니다.
이것이 / 건배에 도움이되기를 바랍니다.