우분투 16.10 이상에서 Android Studio의 AVD가 동작하지 않을때

16.04에서 Android Studio를 설치하고 에뮬레이터를 실행할때에는 문제가 없었는데, 17.04를 설치한 이후로 에뮬레이터가 동작하지 않아 직접 커맨드로 확인했더니,
i965_dri 드라이버 모듈에러가 나고 있었다.

그래서 구글링을 한 결과 아래와 같이 진행해야만 한다.

1.문제의 내용

user1@user1-Lenovo-U31-70:~/Android/Sdk/emulator$ ./emulator -list-avds
Nexus_S_API_24
Nexus_S_API_25
user1@user1-Lenovo-U31-70:~/Android/Sdk/emulator$ ./emulator -avd Nexus_S_API_24 (왼쪽의 커맨드로 에뮬레이터의 동작을 확인할수 있다, 그러나 에러남..)
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965

2.에뮬레이터 실행 확인

위의 커맨드로 하지 않고 아래의 커맨드로 -use-system-libs 옵션이 들어가면 문제없이 기동되는 것을 확인할수 있다.

./emulator -use-system-libs -avd Nexus_S_API_24

 

3. 해결방법

$ sudo apt-get install lib64stdc++6:i386

$ sudo apt-get install mesa-utils (아마 기존에 설치되어 있을 것이다)
mv ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6{,.bak}
mv ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6.0.18{,.bak}
user1@user1-B85M-DS3H-A:~/Android/Sdk/emulator/lib64/libstdc++$ ln -s /usr/lib32/libstdc++.so.6 ./

위의 두개의 mv 커맨드는 백업파일을 만들어주는 것이고 3번째 커맨드는 시스템 libstdc++로 링크연결을 해주는 것이다.

나는 아예 파일을 삭제해 버리고 아래처럼 설정해 두었다.

— 기타: 만일 위의 방법대로 했는데도 안된다면 그래픽 드라이버를 오픈소스를 사용하지 않게 하면 동작하는 경우도 있다.

이제 Android Studio로 돌아가서 앱이 켜지는 것을 확인하자.

관련 글

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다