2011년 12월 12일 월요일

Galaxy Tab 10.1 OpenSLES 로드할 수 없는문제

어떤 이유에서 인지 갤럭시탭 10.1 에 OpenSLES 라이브러리 파일이 빠져있었다.
그래서 다른 디바이스에서는 소리가 나오던 앱이 갤럭시탭 10.1 에서만 소리가 나오지 않는 증상이 있었다.

Android Virtual Device 에 있는 라이브러리 파일들을 추출해서 자신의 프로젝트 폴더의 libs 폴더에 라이브러리 파일들을 추가하고 라이브러리를 로드할 때 가장 먼저 로드를 해서 해결하였다.

필요한 파일은 두개다 libOpenSLES.so 파일과 libwilhelm.so 파일이다.

아래 명령으로 파일들을 추출할 수 있다.
adb -s <디바이스 이름> pull /system/lib/libOpenSLES.so
adb -s <디바이스 이름> pull /system/lib/libwilhelm.so

아래 코드를 추가해 준다.
System.loadLibrary("wilhelm");
System.loadLibrary("OpenSLES");

갤럭시탭 10.1 에 대해서만 라이브러리를 로드하면 되기 때문에 모델명 등을 참조하여 갤럭시탭 10.1 인 경우에만 해당 코드를 수행하게 하면 되겠다.

!) 한가지 불안한 점은 해당 라이브러리 파일들을 적용한 후로 소리는 나오는데 알 수 없는 로그들이 무수히 많이 찍히는 점이 있었다. 성능에는 영향을 주지는 않는 것 같지만 어떤 문제가 잠재되어 있을지는 아직 알 수 없다.

이미 버전업을 통해서 고쳐졌거나 다른 방법이 있는지는 추후 확인해 보겠다.

댓글 없음:

댓글 쓰기