program story

ADB 서버 버전 (36)이이 클라이언트 (39)와 일치하지 않습니다. {Genymotion을 사용하지 않음}

inputbox 2020. 11. 3. 08:00
반응형

ADB 서버 버전 (36)이이 클라이언트 (39)와 일치하지 않습니다. {Genymotion을 사용하지 않음}


이 질문에 이미 답변이 있습니다.

테스트 장치에 Android O 미리보기를 설치 한 후 ADB가 작동을 멈추고이 오류가 발생하기 시작했습니다.

adb server version (36) doesn't match this client (39); killing... adb E 03-27 08:01:55 2925 147690 usb_osx.cpp:333] Could not open interface: e00002c5 adb E 03-27 08:01:55 2925 147690 usb_osx.cpp:294] Could not find device interface error: could not install *smartsocket* listener: Address already in use ADB server didn't ACK * failed to start daemon * error: cannot connect to daemon

이 문제에 대해 내가 만난 유일한 답변은 Genymotion이 ADB와 동기화되지 않았지만 Genymotion을 사용하지 않는다는 것입니다. 어떤 도움이라도 대단히 감사하겠습니다. 이미 Android Studio와 모든 도구 및 설정을 지우고 다시 설치했지만 여전히이 문제가있는 것 같습니다.


제 경우에는 내 환경 adb 경로를 ~/.android-sdk/platform-tools(예를 들어 android-platform-tools가 homebrew를 통해 설치 될 때 발생하는) 설정했을 때이 오류가 발생했습니다. 버전은 36이지만 Android Studio 프로젝트에는 ~/Library/Android/sdkadb 버전이 39 인 Android SDK 다음 경로 가 있습니다. .

내 PATH를 플랫폼 도구로 변경 ~/Library/Android/sdk/platform-tools했으며 오류가 해결되었습니다.


이것은 나를 위해 작동합니다 ...

  • GenyMotion 설정-> ADB 탭으로 이동하십시오.
  • Genymotion Android 도구 사용 대신 사용자 지정 Android SDK 도구를 선택한 다음 설치된 SDK를 찾습니다.

먼저 제목에서 "{Not using Genymotion}"을 제거하세요. Genymotion이 무엇인지 모르는 저와 같은 독자의주의를 산만하게합니다. 여기서 어리석은 점은 "GenyMotion 설정으로 이동"이라는 21 점의 답변이 하나 있다는 것입니다 ...

다른 모든 사람들이 놓친 요점 은 백그라운드에서 실행중인 adb 프로세스 가있을 때이 오류가 발생한다는 것입니다 . 따라서 첫 번째 단계는 그것을 찾아 죽이는 것입니다.

ps aux | grep adb
user          46803   0.0  0.0  2442020    816 s023  S+    5:07AM   0:00.00 grep adb
user          46636   0.0  0.0   651740   3084   ??  S     5:07AM   0:00.02 adb -P 5037 fork-server server

그것을 찾으면 kill -9 46636.

제 경우 문제는 GapDebug에서 가져온 adb 의 이전 버전 이었습니다. GapDebug로 이것을 얻었다면, 빠져 나와서

adb kill-server
adb start-server

백그라운드에서 GapDebug를 사용하면 adb 서버를 종료하면 GapDebug가 즉시 자체 복사본을 시작하여 시작 서버가 무시됩니다.


두 가지 버전의 ADB가 있습니다. $ /usr/local/bin/adb version Android Debug Bridge version 1.0.36 Revision 0e9850346394-android

$ /Users/user/Library/Android/sdk/platform-tools/adb version Android Debug Bridge version 1.0.39 Revision 3db08f2c6889-android

PATH가 ( echo $PATH)를 가리키는 것을 볼 수 있지만 adb stop-server한 버전에서 다른 버전으로 수정했습니다 adb start-server.


나는 같은 오류가 있었다. 제 경우에는 Appium을 사용하여 두 가지 버전의 ADB를 사용했습니다.

$ /usr/local/bin/adb 버전 36

$ /Users/user/Library/Android/sdk/platform-tools/adb 버전 39

해결책은 다음과 같습니다.

  1. bash_profile의 $ PATH가 다음을 가리키는 지 확인하십시오. /Users/user/Library/Android/sdk/platform-tools/

  2. adb 서버를 중지하고 adb kill-serverAppium이 중지되었는지 확인합니다.

  3. adb 버전 36을 삭제합니다 (또는 백업을 위해 이름을 바꿀 수 있음). rm /usr/local/bin/adb

  4. adb 서버 시작 : adb start-server또는 Appium 시작


또 다른 잠재적 인 솔루션을 추가하기 위해 Clockworkmod의 Helium에는 계속 시작되는 자체 버전의 ADB가 내장되어 있습니다. Helium Desktop 응용 프로그램을 종료하면 문제가 해결됩니다.


Android Studio에서 동일한 문제가 발생했습니다. adb 서버 버전 (37)이이 클라이언트 (39)와 일치하지 않습니다. 다음 솔루션으로 수정했습니다.

Android Studio에서 도구-> Android-> SDK 관리자로 이동합니다.

SDK 도구 탭에서 Android SDK 플랫폼 도구를 선택 취소하고 적용을 클릭하여 제거합니다.

그런 다음 Platform-Tools 폴더의 이름을 Platform-ToolsOld로 변경했습니다.

그런 다음 SDK Manager로 돌아가 플랫폼 도구를 다시 선택하여 다시 설치하십시오.


여기에서 다른 사람들이 언급했듯이 두 개의 adb를 실행할 수 있습니다 ... 그리고 Linux 상자 관점에서 이러한 답변에 추가하려면 (Linux에서 작업하는 다음 초보자를 위해);

  1. 배포판의 Android 도구를 제거합니다 (zypper 또는 yum 등 사용).

    # zypper -v rm android-tools
    
  2. 다른 adb가있는 곳 찾기

    # find /home -iname "*adb"|grep -i android
    

    에 있었다고 말하십시오;

    / home / developer / Android / Sdk / platform-tools / adb

  3. 그런 다음 / usr / bin 폴더에 소프트 링크를 만듭니다.

     ln -s /home/developer/Android/Sdk/platform-tools/adb  /usr/bin/adb
    
  4. 그때;

     # adb start-server
    

여러 adb 서버가 실행 중이라고 생각합니다. genymotion이 그중 하나 일 수 있지만 Xamarin-Mac OS 용 Visual Studio가 adb 서버를 실행할 수 있습니다. Visual Studio를 닫는 것이 저에게 효과적이었습니다.

참고 URL : https://stackoverflow.com/questions/43050370/adb-server-version-36-doesnt-match-this-client-39-not-using-genymotion

반응형