2011년 11월 10일 목요일

touch screen이 없는 android에서 app이 죽는 상황

touch screen이 없는 android에서는 Music, Contacts, Phone app이 동작하지 않습니다.

이전 froyo에서는 android 자체가 켜지지 않았지만 gingerbread 부터는 android는 정상 부팅하도록 변경되었습니다.

아래의 메세지와 같이 resource index가 맞지 않아서 죽습니다.

android.content.res.Resources$NotFoundException: Resource contacts

googling 하다가 아래 페이지를 찾았고

https://bugs.launchpad.net/linaro-android/+bug/772528

git log를 보면 fake-ts에 관한 내용이 있습니다.

http://git.linaro.org/gitweb?p=android/device/linaro/common.git;a=commit;h=89a3940ca2ad04a54e4a8aa315f0089ce4621d17

[LINARO] Add fake touchscreen 'driver' to avoid Android activity crash

Some Android activities like 'Music' expect the presence of touchscreen
device, otherwise they would crash due to lacking of corresponding
system resources.

To fix the crash, a fake touchscreen 'driver' is added, which utilizes
uinput to register a touchscreen device in kernel.


touch screen이 없더라도 kernel 드라이버에 fake또는 dummy touch screen driver가 반드시 있어야 합니다.

정확하게는 상황이 이해가 가지 않지만 Music app에서 touch screen을 resource로 관리하고 ts가 없기 때문에 resource index가 문제가 되는 것 처럼 보입니다.

댓글 쓰기