web-dev-qa-db-ja.com

Android OS X 10.6 SnowLeopardを実行しているMacでSDKエミュレータがフリーズする

OS X 10.6.2 SnowLeopardを実行している両方のMacでAndroid SDKを実行するのに問題があります。これは、Snow Leopardのように、64ビットと32ビットの問題のようです。 Java仮想マシンを含む、すべてがデフォルトで64ビットになりました。

私は このウェブページ を見つけましたAndroidツールを32ビットJava VMで実行する方法についての説明、そして私はAndroid GUIツールを実行してSDKファイルをダウンロードしたり、AVMを作成したりできるようになりました。ただし、 Hello Worldチュートリアル を試してみると、 Androidエミュレーターでアプリケーションを実行すると、すべてが南に移動します。

エミュレータは起動しているように見えますが、何も表示されずにハングします(デスカーソルのスピニングピンホイール)。 (これはエミュレーターをハングさせるだけです。システムの残りの部分は引き続き正常に機能します。)Windows仮想マシンでまったく同じ手順(32ビットJavaハック)を除く)に従うと、すべてが機能します。結構です。

これは私のMacProタワーと13インチMacBookProの両方で発生します。誰か提案がありますか?

5
Donald Burr

先日掘り下げていたところ、ターミナルに次のメッセージが表示されました。エミュレータ:警告:オーディオ入力を開くことができませんでしたこのメッセージは何度も見たことがありますが、エミュレータがサウンドをサポートしていないか、そんな感じ。しかし、ある特定の日に実験を試みることにしました。エミュレータには「-noaudio」コマンドラインオプションがあることがわかりました。それを使用して実行すると、機能しました。だから今、私は常に-noaudioオプションを指定してエミュレーターを実行し、フリーズしません。サウンドもサポートされていませんが、少なくともエミュレータを実行できるようになりました。

これで、コマンドラインからエミュレータを手動で呼び出すと機能します。 Eclipse ADTプラグインがそれを呼び出すときはどうですか?その時点で私はかなり怠惰に感じていて、ADTプラグインを調べて、「エミュレーターを実行するたびにこれらのコマンドラインフラグを追加する」オプションがあるかどうかを確認したくなかったので、小さな「ラッパー」シェルスクリプトを作成しました。常に-noaudioオプションを追加するエミュレータコマンドの場合。ちょっとしたごまかしですが、機能します。方法は次のとおりです(注:$はシェルプロンプトを表します。自分で入力しないでください)

$ cd <WHERE YOU INSTALLED THE Android SDK>/tools
$ mv emulator emulator.real
$ cat > emulator << EOF
#!/bin/sh
exec <WHERE YOU INSTALLED THE Android SDK>/tools/emulator.real -noaudio $*
EOF
4
Donald Burr

上記のすべてのヒントは確かに機能します。フリーズの問題の解決策は、エミュレーターの起動時に-noaudioオプションフラグを渡すことです。

エミュレータの起動をさらに高速化するために、次の2つのフラグ/オプション-cpu-delayおよび-no-boot-animを追加できます。

$ emulator -cpu-delay 0 -no-boot-anim -no-audio -avd <avd name>

ここで、-no-audioは実際にフリーズの問題を修正します。 -no-boot-animは起動アニメーションを無効にし、<avd name>は実行するavdイメージの名前に置き換える必要があります

2

同じ問題が発生しましたが、エミュレータの実行時に接続されていたUSBヘッドセットを抜くだけで修正されました。

1
Eric

2009年12月31日19:57にDonaldBurrが出した答えは、現在のSDKとツールチェーンでも当てはまります。

ただし、Eclipseを使用する場合は、ラッパースクリプトは必要ありません。アプリケーションの特定の実行構成内で-noaudioコマンドラインオプションを渡すことができます([追加のエミュレータコマンドラインオプション]フィールドの[ターゲット]タブで)。

追加するのを忘れた:私はMacBookを使用していて、24インチのLED Cinema Displayを接続しています。これは、USBでも接続され、サウンドスピーカーを提供します。したがって、前述のUSBサウンドデバイスのバグは、まだAndroid SDKパッケージ全体のどこかにあると思います。

1
daniel

MacBookAirのOSX10.8.4でも同じ問題が発生しました。最終的に、問題はAVDの再起動時にのみトリガーされることがわかりました。今のところ私の回避策は、エミュレータを再起動するたびに新しいAVDを定義することです。

1
Susan

10.6.2、Android 2.0.1、Eclipse 3.5は問題なく実行しているので、問題はないはずです。デフォルトのos x設定に戻り、SDKを再インストールします。次に、コマンドラインからエミュレーターを実行してみて、それが機能するかどうかを確認してください...

mac:~ > Java -version
Java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)

mac:~ > uname -a
Darwin veritas 10.2.0 Darwin Kernel Version 10.2.0: Tue Nov  3 10:37:10 PST 2009; root:xnu-1486.2.11~1/RELEASE_I386 i386
0
yanokwa