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로 돌아가서 앱이 켜지는 것을 확인하자.