Эмулятор в Android Studio не запускается после обновления инструментов SDK до 25.3.1

После обновления моих Android SDK сегодня до 25.3.1 эмулятор больше не будет запускаться.

Я могу открыть AVD Manager. Когда я нажимаю "Play" на одном из эмуляторов в списке, я вижу панель ниже на Android Studio

введите описание изображения здесь

Но после того, как индикатор выполнения достигнет конца, ничего не произойдет.

Я вижу в примечания к выпуску, что последнее обновление внесло изменения в эмулятор, поэтому мне интересно, если это ошибка или я что-то об этом.

Я использую Android Studio 2.3.

Любые идеи?

Ответ 1

Я столкнулся с той же проблемой после обновления. Я не могу понять, что вызывает проблему конфигурации, но я нашел способ обхода.

Сначала я попытался запустить эмулятор из командной строки:

$ emulator @<name_avd_image>
emulator: ERROR: This AVD configuration is missing a kernel file! Please ensure the file "kernel-ranchu" is in the same location as your system image.
emulator: ERROR: ANDROID_SDK_ROOT is defined (<android>/sdk) but cannot find kernel file in <android>/sdk/system-images/ sub directories

Вы можете получить дополнительную информацию, если вы запустите emulator с флагом -verbose. Я попытался переустановить образ системы (например, API Android 25 x86 с API Google), Android Emulator 25.3.1 и повторно создать AVD, но ничего не получилось.

Наконец, в качестве обходного пути я просто скопировал все системные файлы из каталога образов системы SDK в каталог AVD:

Пример: Pixel XL (API Android 25 x86 с API Google)
ИСТОЧНИК: <android>/sdk/system-images/android-25/google_apis/x86/
DESTINATION: ~/.android/avd/Pixel_XL_API_25.avd/

После этого эмулятор запустился. Это не идеально, но это блокировало мое развитие, поэтому мне пришлось снова запустить эмулятор. Я надеюсь, что кто-то еще сможет выяснить, что сломалось в конфигурации.


ОБНОВЛЕНИЕ: Выясните проблему конфигурации!

Я заметил, что периодически видел консольную ошибку "Ваш эмулятор устарел, пожалуйста, обновите, запустив Android Studio", поэтому я решил проверить:

$ which emulator
<$ANDROID_SDK_ROOT>/tools/emulator

С помощью этого thread:

Проблема заключается в наличии двух эмуляторов: один в $ANDROID_SDK_ROOT/tools, другой в $ANDROID_SDK_ROOT/emulator. Один в $ANDROID_SDK_ROOT/toolsне может начаться. Поместите $ANDROID_SDK_ROOT/emulator до $ANDROID_SDK_ROOT/tools в вашей переменной $PATH, она должна исправить проблема.

ПРИМЕЧАНИЕ. Для большинства пользователей Mac вы можете изменить свой ~/.bash_profile, чтобы изменить эти параметры, а затем запустите $source ~/.bash_profile, чтобы загрузить обновления. В моем конкретном случае у меня также были старые значения для $ANDROID_HOME, которые я должен был очистить.

Ответ 2

Реальная проблема, по крайней мере, над Ubuntu 16.10 и 17.04 и Andoid Studio 2.4 Preview 7 (но может случиться с любым производным Debian и предыдущими версиями Android Studio) заключается в том, что Google распространяет нерабочую libstdС++сильная > библиотека с инструментами эмулятора. Они распространяют версию 6.0.18, но я обнаружил, что рабочий - 6.0.22.

EDIT: есть сообщения о том, что версия libstdС++ 6.0.21 работает так же, как и 6.0.22.

Итак, у вас есть 2 варианта:

Вариант 1

rm предыдущие неработающие файлы Google в/yoursdkpàth/emulator/lib64/libstdС++

Загрузите и извлеките libs из официальный пакет libstdС++ в/yoursdkpàth/emulator/lib64/libstdС++

Не пытайтесь установить .deb, извлеките из него файлы/двоичные файлы (два двоичных файла находятся в папке с именем "lib" ) и скопируйте их по рекомендованному пути.

Вариант 2

Создайте ссылку на lib, распространяемую вместе с Ubuntu, которая уже является версией 6.0.22

cd ~/Android/Sdk/emulator/lib64/libstdc++/

mv libstdc++.so.6 libstdc++.so.6.bak

mv libstdc++.so.6.0.18 libstdc++.so.6.0.18.bak

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22 ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6.0.22

ВАЖНО 1: Поскольку Google, похоже, не знает о проблеме, при каждом обновлении, которое они делают в пакете Android Emulator в Android Studio, они нарушают функциональность, заменяя ваши рабочие SDK С++ libs сломанными/более старыми, Решение состоит в повторении любой из вышеперечисленных процедур.

ВАЖНО 2: Это допустимо только в том случае, если ваши AVD настроены для использования вашего ПК в качестве хоста для ускорения видео (Hardware GLES 2.0). Выбор Sofware GLES 2.0 на вашем AVD будет работать без каких-либо предлагаемых изменений, но ваш эмулятор будет мучительно медленным.

Ответ 3

Проверяете ли вы эмулятор Android, установленный в ** SDK Tools?

Перейдите в Настройки- > sdk-tools.

Посмотрите, установлен ли Android или нет.

У меня такая же проблема. когда я проверил SDK Tools, я обнаружил, что эмулятор Android не установлен.

enter image description here

Ответ 4

libstdc++.so.6 является причиной (как указано @doruMarinau); Android Studio 2.3 перенес файл в новую папку your_sdk/emulator/lib64.

Если вы используете Linux, создайте для него символическую ссылку:

$ ln -sf /usr/lib/libstdc++.so.6  /your_sdk/emulator/lib64/libstdc++/libstdc++.so.6

Ответ 5

Решение: Инструменты - Android - Менеджер Sdk вкладка Инструменты Sdk установить эмулятор 25.3.1

Ответ 6

Это сработало для меня:

Перейдите в AVD Manager, затем в столбце Actions щелкните стрелку, указывающую рассвет, и выберите "Wipe Data". После этого попробуйте запустить эмулятор.

введите описание изображения здесь

Ответ 7

перейти к Sdk/emulator/lib64/libstdС++ переместить libstdС++. so.6 и libstdС++. so.6.0.18 в myfolder (я создал это) (или любое другое место) в качестве резервной копии и скопировать libstdС++. so.6, libstdС++.so.6.0.21 из usr/lib64; лоток снова запускает ваше виртуальное устройство!

Ответ 8

Его ошибка libGL и проблема libstdС++. Невозможно запустить AVD в эмуляторе. Его знать ошибку, и вы можете легко победить ее с помощью простых шагов.

Я тестировал это решение на Ubuntu 16.10 64bit

Решение:

$adb kill-server
$adb start-server

После этого запустите свой эмулятор из студии Android. Если это не сработает, переходите к следующему решению.

Альтернативное решение:

Сначала установите некоторые пакеты и библиотеки:

$sudo apt-get install lib64stdc++6:i386
$sudo apt-get install mesa-utils

Во-вторых, отредактируйте некоторые ссылки:

$ cd YOURPATH/Android/Sdk/tools/lib64
$ mv libstdc++/ libstdc++.bak
$ ln -s /usr/lib64/libstdc++.so.6  libstdc++

В-третьих, перезапустите свое AVD-устройство и проверьте его.

Ответ 9

В течение последних нескольких дней это приводило меня в бешенство. Вот то, что сработало для меня:

ANDROID_HOME, ANDROID_SDK_ROOT переменные в "Переменные системной среды" отличаются от Android Studio -> Settings -> Android SDK Location. Поэтому, когда я изменил переменные среды, AVD запустился!

(После изменения переменной среды вы должны перезапустить Android Studio)

Ответ 10

Единственное решение, которое сработало для меня, заключалось в установке следующих отсутствующих библиотек:

$sudo apt-get install lib64stdc++6:i386
$sudo apt-get install mesa-utils

После их обновления обновите его в эмуляторе sdk следующим образом:

$ ln -sf /usr/lib/libstdc++.so.6  /home/[YOUR_SYSTEM_USERNAME]/emulator/lib64/libstdc++/libstdc++.so.6

Запустите свой эмулятор снова, и он будет работать нормально.

Ответ 11

Начиная с этой версии, Android-эмулятор будет выпущен отдельно от SDK Tools. поэтому просто установите эмулятор Android, используя инструменты sdk в вашей студии Android.

Ответ 12

Моя проблема была ANDROID_SDK_HOME, указывающая на d:\.android вместо d:\. Не удалось найти изображения.