5

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

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

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

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

6 ответов6

4

Я копался на днях и увидел, что это сообщение появилось на терминале: эмулятор: предупреждение: не удалось открыть аудиовход. Я видел это сообщение много раз раньше, и я всегда предполагал, что это потому, что эмулятор не поддерживает звук или что-то вроде того. Но я решил попробовать эксперимент в тот день. Оказывается, в эмуляторе есть опция командной строки "-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

Все вышеперечисленные советы, безусловно, работает. Решение проблемы замораживания состоит в том, чтобы просто передать флаг опции -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-гарнитуры, которая была подключена во время выполнения эмулятора

1

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

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

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

1

У меня была такая же проблема на OS X 10.8.4 на MacBook Air. В конце концов я понял, что проблема была вызвана только при повторном запуске AVD. Мой обходной путь на данный момент заключается в определении нового AVD каждый раз, когда я перезапускаю эмулятор.

0

Я бегу 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .