« onPause()とonStop()の経路 | トップページ | 「レンタルマギカ -死線の魔法使いたち-」を読んで »

2011年10月21日 (金)

Android 4.0のAVDがSegmentation faultする(Ubuntu11.04)

Android 4.0が公開された。
早速、SDKをダウンロードして、
AVDを作成。

で、起動してみた。


・・画面すぐ消えるんだけど・・。
しかも、Android 4.0のAVDだけ。

別のPCで試すと動くのだけど、
ノートPC(VAIO君)でやるとだめ。
(Ubuntu 10.10と11.04)

いじってみると、追加された、
「ウェブカメラエミュレーション」の
影響でSegmentation fault が発生してる模様。

 ウェブカメラエミュレーションは、
 adakodaさんのページにあるので、
 興味ある方はぜひ。


予想だけど、
カメラ付きのPCだと、
発生する可能性があるのかな。
(Windowsはさっぱり)

解決方法は、2つある。
 1.エミュレータ起動時にオプション指定
 2.AVDの設定ファイルを変更


1.エミュレータ起動時にオプション指定
 adakodaさんのページにある、
 ウェブカメラエミュの機能を無効化する方法。
 "-webcam off" を付ければいい。
 なので、こんなコマンドになる。
  $emulator @ICS -webcam off


2.AVDの設定ファイルを変更
 こっちは、
 Googleグループの
 Android Developers にあった方法。

 AVDの設定ファイルの「config.ini」に、
 以下の1行を追加。
  hw.webcam.count = 0

 AVD managerで作ると、
 ~/.android/avd/<名前>.avd/config.ini
 になるのかな。


最後にFaultの場合のログの最後の部分を張り付けておく。
(最後繰り返しっぽいので・・)
$strace emulator @ICS とやった場合のログ。


--- SIGALRM (Alarm clock) @ 0 (0) ---
clock_gettime(CLOCK_MONOTONIC, {19671, 86038083}) = 0
clock_gettime(CLOCK_MONOTONIC, {19671, 86069175}) = 0
sigreturn() = ? (mask now [])
clock_gettime(CLOCK_MONOTONIC, {19671, 86341994}) = 0
--- SIGALRM (Alarm clock) @ 0 (0) ---
clock_gettime(CLOCK_MONOTONIC, {19671, 87045010}) = 0
clock_gettime(CLOCK_MONOTONIC, {19671, 87080382}) = 0
sigreturn() = ? (mask now [])
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault

同じようにはまってる人がいないことを祈って・・。


リンク:
「[Android] エミュレーターで
 ウェブカメラエミュレーションを使用する」
 by adakoda様

「SDK 4, if I select WXGA resolution,
emulator doesn't start.」
 from Android Developers

|

« onPause()とonStop()の経路 | トップページ | 「レンタルマギカ -死線の魔法使いたち-」を読んで »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/97274/42613630

この記事へのトラックバック一覧です: Android 4.0のAVDがSegmentation faultする(Ubuntu11.04):

« onPause()とonStop()の経路 | トップページ | 「レンタルマギカ -死線の魔法使いたち-」を読んで »