Эмулятор Android SDK зависает на Mac под управлением OS X 10.6 Snow Leopard

8659
Donald Burr

У меня проблемы с запуском Android SDK на обоих моих Mac под управлением OS X 10.6.2 Snow Leopard. Похоже, что это проблема 64-разрядных и 32-разрядных, поскольку Snow Leopard по умолчанию теперь использует все 64-разрядные, включая виртуальную машину Java.

Я нашел эту веб-страницу с инструкциями о том, как заставить инструменты Android работать на 32-битной виртуальной машине Java, и теперь я могу запустить инструмент Android GUI для загрузки файлов SDK, создания файлов AVM и т. Д. Однако, когда я пытаюсь Учебник Hello World и дошел до того, что я запускаю свое приложение под эмулятором Android, все идет на юг.

Кажется, что эмулятор запускается, но он зависает (вращающийся шарик смерти), ничего не показывая. (Это только приводит к зависанию эмулятора; остальная часть системы по-прежнему работает нормально.) Если я выполняю те же самые шаги (за исключением 32-битного взлома Java) в виртуальной машине Windows, все работает нормально.

Это происходит как на моем Mac Pro tower, так и на 13-дюймовом MacBook Pro. У кого-нибудь есть предложения?

5

6 ответов на вопрос

4
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 
2
Babatunde Adeyemi

Все вышеперечисленные советы, безусловно, работает. Решение проблемы замораживания состоит в том, чтобы просто передать -noaudioфлаг опции при запуске эмулятора.

Чтобы еще больше ускорить запуск эмулятора, вы можете добавить два других флага / параметра -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, который вы хотите запустить

1

У меня была та же проблема, и она была устранена простым отключением USB-гарнитуры, которая была подключена во время выполнения эмулятора

У меня была эта проблема со стереогарнитурой Bluetooth. Отключение это решило проблему. Sam 13 лет назад 0
1
daniel

Ответ, который Дональд Барр дал 31 декабря 2009 года в 19:57, по-прежнему применим даже к текущему SDK и цепочке инструментов.

Но вам не нужен скрипт-обертка, если вы используете Eclipse. Вы можете просто передать параметр командной строки -noaudio в определенной конфигурации запуска вашего приложения (на вкладке «Цель» в поле «Дополнительные параметры командной строки эмулятора»).

Забыл добавить: я использую MacBook и у меня есть 24-дюймовый светодиодный дисплей Cinema, который также подключен через USB и обеспечивает звуковые колонки. Так что я думаю, что упомянутая ошибка звукового устройства USB все еще находится где-то внутри всего пакета Android SDK.

1
Susan

I had the same problem on OS X 10.8.4 on a MacBook Air. I eventually figured out the problem was only triggered on AVD relaunch. My workaround for now is to define a new AVD each time I restart the emulator.

0
yanokwa

Я бегу 10.6.2, Android 2.0.1, затмение 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 
Спасибо за чаевые. Я копался на днях и увидел, что это сообщение появилось на терминале: эмулятор: предупреждение: не удалось открыть аудиовход. Я видел это сообщение много раз раньше, и я всегда предполагал, что это потому, что эмулятор не поддерживает звук или что-то вроде того. Но я решил попробовать эксперимент в тот день. Оказывается, в эмуляторе есть опция командной строки "-noaudio", и когда я запустил ее, это сработало !! Так что теперь я просто запускаю эмулятор с опцией -noaudio всегда, без зависаний. Также нет поддержки звука, но по крайней мере теперь я могу запустить эмулятор. Donald Burr 14 лет назад 0

Похожие вопросы