Mac에서 React-Native, Android 및 Genymotion으로 작업하고 있습니다. 실행 react-native run-android
하면 시작 작업이 끝나면이 줄이 나타납니다.
...
04:54:40 E/adb: error: could not install *smartsocket* listener: Address already in use
04:54:40 E/adb: ADB server didn't ACK
04:54:40 E/ddms: '/Users/paulbrie/Library/Android/sdk/platform-tools/adb,start-server' failed -- run manually if necessary
04:54:40 E/adb: * failed to start daemon *
04:54:40 E/adb: error: cannot connect to daemon
:app:installDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: Timeout getting device list.
...
그러나 다음을 adb devices
반환합니다.
List of devices attached
192.168.59.101:5555 device
지금까지 에뮬레이터에서 앱을 실행하는 솔루션을 찾지 못했습니다. 누구든지 같은 문제가 발생 했습니까?
고마워, 폴
답변
더 많은 연구를 한 후에 Genymotion은 기본적으로 자체 adb를 사용한다는 것을 깨달았습니다.
내 기본 adb (react-native에서 사용하는 것과 동일)로 전환하여 문제를 해결했습니다. Genymotion의 adb가 처음 시작되었으므로 Address already in use
오류 메시지가 나타납니다.
답변
genymotion을 사용하고 있지만 Paul의 솔루션만으로는 오류를 수정하지 못했습니다 (Mac의 경우).
나는해야했다 :
SDK 관리자를 통해 Android SDK를 최신 버전 (24.4.1)으로 업데이트
android
명령 행에 입력 하십시오
SDK 관리자에서 최신 SDK 도구를 찾아 설치하십시오.
SDK 경로가 설치되면 아래와 같이 새 SDK 위치를 업데이트해야합니다.
그런 다음 $ ANDROID_HOME을 업데이트하여 새 SDK를 사용하십시오.
export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1_1
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
경로를 확인하여 추가되었는지 확인하십시오. echo $PATH
그런 다음 genymotion에서 @Paul이 위에서 말한 것을 수행하고 genymotion ADB가 동일한 SDK를 사용하도록 지시하십시오.
답변
시스템 : 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 인스턴스를 실행 중임을 보여줍니다. 당신이 그들 중 하나를 죽이면 그들은 다시 돌아옵니다.
이것이 / 건배에 도움이되기를 바랍니다.
답변
어쩌면 귀하의 adb 버전이 일치하지 않을 수 있습니다
검사:
adb version
그때:
cd /Path/to/Android/Sdk/platform-tools && ./adb version
이 두 가지가 다른 경우 여기에 오류가있는 경우 sys에서 adb를 제거하고 platform-tools에있는 adb를 / usr / bin /에 복사하십시오.
답변
시스템을 깨끗하게 유지하려면 Android Studio없이 Genymotion 을 사용할 수도 있습니다 .
- Genymotion의 사본을 찾으십시오
adb
. macOS에서 이것은 일반적으로/Applications/Genymotion.app/Contents/MacOS/tools/
입니다. - / 실행 줄을 추가 – 당신의 경로에 Genymotion 도구 디렉토리를 추가
export PATH=/Applications/Genymotion.app/Contents/MacOS/tools/:$PATH
하여에~/.bash_profile
또는~/.bash_rc
. - 터미널에서 adb를 실행할 수 있는지 확인하십시오.
( https://docs.expo.io/versions/latest/workflow/genymotion에서 )
답변
시스템의 adb 버전이 android sdk platform-tools의 adb 버전과 다릅니다. 아래 제안은 Linux 운영 체제에서 작동합니다.
- sys adb 버전 확인 아래 명령을 실행하십시오.
adb 버전
Android Debug Bridge 버전 1.0.39
- SDK ADB 버전 확인
cd / root / Android / Sdk / 플랫폼 도구
./adb 버전
Android Debug Bridge 버전 1.0.32
- 부
rm / usr / bin / adb
[참고 : 위의 명령은 기존 adb를 제거한 다음 sdk / platform-tools 디렉토리에서 adb를 복사합니다]
sudo cp / root / Android / Sdk / platform-tools / adb / usr / bin / adb
그런 다음이 명령을 사용하여 프로젝트를 실행하십시오.
반응 네이티브 런 안드로이드
답변
엑스포 UI에서 실행하려고 할 때도 마찬가지였습니다. 답변에 설명 된 것과 동일한 작업을 수행했지만 앱이 실행되지 않았습니다. exp android
프로젝트 폴더의 명령 줄에서 실행 을 시도하면 응용 프로그램이 성공적으로 실행되고 다음에 Expo UI에서 성공적으로 실행되었습니다.