2010-10-07 3 views
78

Я вижу много сообщений о записи на SD-карту, но я считаю, что моя проблема другая. Я не могу создать SD-карту в процессе создания AVD.Ubuntu - Ошибка: не удалось создать SD-карту

Первоначально я пытался использовать Android SDK и AVD Manager, чтобы сделать это, выбрав
Имя: my_avd
Target: Android 2.2 - Уровень API 8
SD Card: Размер: 1024 Мб
кожи: Встроенный: По умолчанию (HVGA)
Оборудование: Свойство: отведенной LCD Density, стоимость: 160

Это выскакивает окно с сообщением:
«Результат создания AVD„my_avd“:
Ошибка:. Не удалось создать SD-карту»

Я пытался повторить процесс из командной строки, получив подобную ошибку:

[email protected]:~$ android create avd -n my_avd -t 1 -c 1024M 
Android 2.2 is a basic Android platform. 
Do you wish to create a custom hardware profile [no]no 
Error: Failed to create the SD card. 

Попытка следовать инструкциям по использованию mksdcard был одинаково непродуктивными; Я думаю, что моя основная нехватка опыта Linux может вызвать у меня проблему. Когда я пытаюсь использовать mksdcard, он просто сообщает, что он не может найти файл или каталог. Является ли средство mksdcard доступным для использования в Linux?

[email protected]:~$ mksdcard 1024M ./sdcard.iso 
bash: /home/alex/android-sdk-linux_x86/tools/mksdcard: No such file or directory 
[email protected]:~$ sudo android create avd -n my_avd -t 1 -c 1024M 

Я добавил каталог андроид инструменты для моей переменной PATH, но я чувствую, что, очевидно, что-то еще, что я пропускаю. Возможно, какие-то права доступа?

Попытка запустить андроид команду с Судо, похоже, не помогло:

[email protected]:~/android-sdk-linux_x86/tools$ sudo ./android create avd -n my_avd -t 1 -c 1024M 
Android 2.2 is a basic Android platform. 
Do you wish to create a custom hardware profile [no]no 
Error: Failed to create the SD card. 

Я даже попытался установить Eclipse, и плагин ADT и работает менеджером оттуда безрезультатно. Любые советы были бы наиболее ценными. Продвинутое предупреждение о том, что я в некотором роде новичок в Linux, поэтому, даже если мне кажется, что нет ничего очевидного, чтобы проверить, я все равно мог пропустить это.

Спасибо!

+0

@Alex Притчард: Вы, вероятно, не нужен фальшивка SD карта 1024M. Попробуйте 32M вместо этого и посмотрите, есть ли у вас больше удачи. – CommonsWare

+0

@CommonsWare Увы, 32M SD-карта все еще не создает. :( –

+0

@Alex Pritchard: Это довольно странно. Изображения создаются в том же каталоге, что и остальные AVD ('~/.android/avd/whateveryoucalledit /'), поэтому я не могу понять, как вы можете создавать AVD, но не AVD с SD-картой. – CommonsWare

ответ

97

Так что я нашел проблему. Я использовал 64-битную установку Linux, у которой не было установленный по умолчанию ia32-libs-пакет. Утилита mksdcard не будет работать без этого пакета. После его установки мне удалось создать AVD без проблем с помощью AVD-менеджера.

+1

Спасибо , ubuntu 12.04 x 64, он решил проблему. Я бы только заметил, что эти ia32-libs составляют 260 мб. – yetanothercoder

+0

«Будут установлены следующие новые пакеты: [стена текста]» ... –

+42

Да! Я нашел путь без всех этих ужасных 240 пакетов зависимостей! Вместо 'ia32-libs' установите' libstdC++ 6: i386 libgcc1: i386 zlib1g: i386 libncurses5: i386'. Престижность этому парню, который спас мой (и, надеюсь, другие) компьютер от всего мусора: http://stackoverflow.com/a/10473415/998772 P.S. Я использую Linux Mint 13 –

6

Я только столкнулся с той же проблемой. NONE из инструментов SDK будет работать на 64-разрядном Ubuntu без установки ia32-libs (пример: sudo apt-get install ia32-libs).

22

У меня была такая же ошибка, как и вы, и я только что решил ее, поэтому, возможно, она может вам помочь (хотя я не думаю, что ваша ошибка вызвана той же проблемой, как и я).

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

chmod -R 777 ../tools 

из командной строки, и, наконец, работает

+1

Благодарим вас за ответ. Stack Overflow обеспечивает форматирование для повышения удобочитаемости вашего ответа. Вы можете использовать форматирование кода, чтобы идентифицировать команду оболочки и установить ее отдельно от вашего другого текста. –

+0

Работает, но это приводит к файлам '.txt',' .xml' и т. Д., Имеющим исполняемые разрешения ... было бы полезно узнать, какие файлы были задействованы – funkybro

2

У меня была другая проблема: платформенные инструменты был на моем пути, но инструменты не было , Итак, все сработало, за исключением того, что образ SDCard не был создан. Об этом не было известно, когда я создал avd в eclipse, и виртуальное устройство было создано с действительно маленькой SD-картой, заставляя его постоянно бросать недопустимую ошибку в приложении при установке приложения.

4
[email protected]:~$ mksdcard 1024M ./sdcard.iso 
bash: /home/alex/android-sdk-linux_x86/tools/mksdcard: No such file or directory 
[email protected]:~$ sudo android create avd -n my_avd -t 1 -c 1024M 

Я нашел эту проблему & я найти способ первый:

cd /home/alex/android-sdk-linux_x86/tools/ 

затем написать это:

sudo chmod 755 mksdcard 
mksdcard 1024M ./sdcard.iso 
sudo android create avd -n my_avd -t 1 -c 1024M 

он должен работать :)

1

Я был другая проблема с использованием 32-битного Ubuntu. Когда я пытался запустить mksdcard вручную, я получал ошибку, не найденную в файле.

Проблема была открыта-jre/jdk. Я установил oracle java, и проблема была исправлена. К сожалению, вы больше не можете установить оракула Java через меткому/Synaptic и придется прыгать через несколько дополнительных обручи:

https://github.com/flexiondotorg/oab-java6

0

MyOS является Oracle Unbreakable Linux 6 - решить эту проблему, я должен был установить libstdC++ - 4.4.6 -3.el6.i686.

3

также эта проблема и после установки i386 пакета я смог создать SD-карту для моего Android эмулятора я должен был сделать в два шагах

sudo apt-get update 
sudo apt-get install ia32-libs 

После этого было закончено , Мне удалось создать эмулятор с установленной SD-картой

+0

Это работало для меня на ubuntu 12.0.4 –

0

Попробуйте переместить папку sdk android в домашнюю папку. Оно работает.

10

Как и другие уже писал, проблема в том, что ваш Linux дистрибутив является 64-битный один и, в настоящее время Android Virtual Device (AVD) нуждается в x86 библиотеки работать правильно.

Кто-то предложил установить ia32-libs. Однако в Ubuntu 14.04 LTS вы не найдете эту библиотеку. я решил с помощью этой альтернативной LIBS: lib32z1, lib32ncurses5, lib32bz2-1.0 и lib32stdC++.

sudo apt-get update 
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++ 
+3

Единственное, lib32stdC++ 6. –

0

У меня была та же проблема. После устранения неполадок я узнал, что из-за моей Windows 32bit и моя mksdcard совместима только с 64-битным. Затем я просто скопировал mksdcard из 32 бит в папку с инструментами и удалил старый. Это решило мою проблему.

2

На тестировании в Debian, когда я попытался запустить ./tools/mksdcards, я получил ошибку:

error while loading shared libraries: libstdc++.so.6: 
cannot open shared object file: No such file or directory 

Установка lib32stdC++ 6 решает проблему, и можно было создать AVD.

4

Если вы используете Кали, Debian Jessie (или Ubuntu 13.10+), попробуйте

Sudo APT-получить установку lib32stdC++ 6

вместо архитектурам ia32-LIBS упомянутых выше.

75

В Ubuntu 16.04 LTS x64, используя Android Studio 2.1 (также проверено на 2.3.3), выполните команду из терминала:

sudo apt-get install lib32stdc++6 
+0

Я установил SDK вручную (без Android Studio), и это сработало для меня. – CTodea

+0

работал для меня. Хорошая работа –

+1

Кроме того, мне пришлось переименовать ~/Android/Sdk/emulator/lib64/libstdC++/libstdC++. So.6 и libstdC++. So.6.0.18 на что-то еще, чтобы запустить эмулятор. Я мог бы заставить его бежать без трудностей. --------------- ./emulator @ Nexus_4_API_23 не удалось создать drawable getGLES2ExtensionString: Не удалось создать GLES 2.x Pbuffer! Не удалось получить строку расширения GLES 2.x! Не удалось инициализировать эмулированный фреймбуфер эмулятор: ОШИБКА: Не удалось инициализировать эмуляцию OpenglES, используйте «-gpu off», чтобы отключить ее. –

4
sudo apt-get install lib32stdc++6 

После этого вы можете получить следующие ошибки

Cannot launch AVD in emulator. 
Output: 
libGL error: unable to load driver: i965_dri.so 
libGL error: driver pointer missing 
libGL error: failed to load driver: i965 
libGL error: unable to load driver: swrast_dri.so 
libGL error: failed to load driver: swrast 
X Error of failed request: GLXBadContext 
    Major opcode of failed request: 154 (GLX) 
    Minor opcode of failed request: 6 (X_GLXIsDirect) 
    Serial number of failed request: 49 
    Current serial number in output stream: 48 
libGL error: unable to load driver: i965_dri.so 
libGL error: driver pointer missing 
libGL error: failed to load driver: i965 
libGL error: unable to load driver: swrast_dri.so 
libGL error: failed to load driver: swrast 
X Error of failed request: GLXBadContext 
    Major opcode of failed request: 154 (GLX) 
    Minor opcode of failed request: 6 (X_GLXIsDirect) 
    Serial number of failed request: 49 
    Current serial number in output stream: 48 
libGL error: unable to load driver: i965_dri.so 
libGL error: driver pointer missing 
libGL error: failed to load driver: i965 
libGL error: unable to load driver: swrast_dri.so 
libGL error: failed to load driver: swrast 
emulator: WARNING: VM heap size set below hardware specified minimum of 228MB 
X Error of failed request: BadValue (integer parameter out of range for operation) 
emulator: WARNING: Setting VM heap size to 384MB 
    Major opcode of failed request: 154 (GLX) 
    Minor opcode of failed request: 24 (X_GLXCreateNewContext) 
    Value in failed request: 0x0 
    Serial number of failed request: 33 
    Current serial number in output stream: 34 
QObject::~QObject: Timers cannot be stopped from another thread 

Используйте эти 3 команды для их устранения

mv ~/Android/Sdk/tools/lib64/libstdc++/libstdc++.so.6{,.bak} 
mv ~/Android/Sdk/tools/lib64/libstdc++/libstdc++.so.6.0.18{,.bak} 
ln -s /usr/lib/libstdc++.so ~/Android/Sdk/tools/lib64/libstdc++/** 
4

В начальном OS и Ubuntu, решение было установить следующие пакеты

sudo apt-get install lib32ncurses5 lib32z1 
sudo apt-get install libgcc1:i386 
+0

Это работало для меня на Kubuntu 17.04. Но libstdC++ должен быть удален. – Avamander