다메다메의 기술블로그

우분투 64비트 운영체제에서 Android Studio의 adb가 실행되지 않을때 본문

Android

우분투 64비트 운영체제에서 Android Studio의 adb가 실행되지 않을때

다메 2014. 12. 24. 17:56

구동환경


OS : ubuntu 14.04 LTS 64bit


Android Stuido 설치 버전 : 1.0.1

 

최근 Android Studio 1.0.1이 발표되어 슬슬 이클립스에서 Anroid Studio로 옮겨야겠다고 마음먹고

옮기기전에 Android Studio에 적응할겸 64비트 우분투에 설치 해보았다.

 

안드로이드 개발자 사이트에서 리눅스용 Android Studio를 다운받고 설치 후 실행까지는

무난하게 진행되었다.

 

그리고 기본중의 기본 Hello World를 에뮬레이터로 테스트 해보고자 에뮬레이터를 생성하려했으나

다음과 같은 에러메세지를 뱉으며 생성에 실패 하였다.


[2014-12-23 20:56:04 - adb] Unexpected exception 'Cannot run program 

"/home/user/Android/sdk/platform-tools/adb": error=2, 


No such file or directory' while attempting to get adb version from 

'/home/user/Android/sdk/platform-tools/adb'
 

에러메세지를 보니 예상치 못한 에러로 실행할수 없었다는것과 adb 버전을 취득하려했으나 파일이나 디렉토리를 찾지 못했다는 내용같았다(영어를 못합니다 ㅠㅠ)

adb 파일이 있는 곳으로 이동한 후 확인해 보니 adb파일이 존재 했다

 

얼레? 제대로 있네?

 

뭐가 문제지?

 

파일이 있는데 No Such라니!

 

어딘가에서 path 지정이 잘못됐나?

 

에러 메세지에는 path가 잘 나오고 있는거 보면 그것도 아닌거 같고..

 

잠시 고민하다 역시 이런 문제는 스택오버플로우라고 생각하고 검색해 보니 있었다.

 

나와 같은 문제가 발생한 외쿸인이...

 

간단한 문제였다.

adb가 32비트용이라 32비트지원 라이브러리가 필요했었던 것이었다.

 

아래는 해결방법이다.

 

1. ldd 커맨드를 이용해 공유 라이브러리 목록을 확인한다.

 edb@lapelidb:~/today$ ldd /(install_path)/sdk/platform-tools/adb not a dynamic executable

 

 edb@lapelidb:~/today$ file  /(install_path)/sdk/platform-tools/adb

/opt/adt-bundle-linux-x86_64-20130729/sdk/platform-tools/adb: ELF 32-bit LSBexecutable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped

 

 

2. 32비트를 지원하는 라이브러리를 다운받는다.

edb@lapelidb:~/today$ sudo dpkg --add-architecture i386
edb@lapelidb:~/today$ sudo apt-get update
edb@lapelidb:~/today$ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

3. 공유 라이브러리들이 잘 연결되어 있는지 확인한다.
edb@lapelidb:~/today$ ldd /(install_path)/sdk/platform-tools/adb
    linux-gate.so.1 =>  (0xf772a000)
    librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf770a000)
    libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf7706000)
    libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf76ec000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7600000)
    libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf75da000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf75bd000)
    libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf745a000)
    /lib/ld-linux.so.2 (0xf772b000)

 

이 후 adb를 실행시키면 정상적으로 실행된다.


 

Comments