Проблемы с Eclipse и Android SDK

54

Я установил Eclipse, openjdk6, скачал и распаковал файл sdk manager.

Теперь, когда я создал проект Android, я получил следующую ошибку:

2012-06-06 18:44:40 - contactManager] /home/catia/android-sdks/platform-tools/aapt: 
error while loading shared libraries: libz.so.1: cannot open shared object file: 
No such file or directory

И этот, когда я пытался создать AVD Manager:

[2012-06-06 19:00:18 - SDK Manager] /home/catia/android-sdks/tools/mksdcard: error 
while loading shared libraries: libstdc++.so.6: cannot open shared object file: No 
such file or directory 
[2012-06-06 19:00:18 - SDK Manager] Failed to create the SD card.
[2012-06-06 19:00:18 - SDK Manager] Failed to create sdcard in the AVD folder.
CSBL
источник
sudo apt-get установить libstdc ++ 6-4.6-dev [или выполнить поиск по синаптике с помощью libstdc ++]. и sudo apt-get установить zlib1g-dev
shantanu
3
@shantanu Проблема не в том, что отсутствуют заголовочные файлы ( -devпакеты), а в том, что для Android SDK нужны 32-битные версии библиотек. Заголовочные файлы нужны только для создания программного обеспечения , основанного на библиотеке, а не для запуска предварительно созданного программного обеспечения.
Элия ​​Каган

Ответы:

47

Эта проблема возникает из-за того, что Android SDK скомпилирован для 32-битной системы GNU / Linux, а ваша система Ubuntu является 64-битной системой GNU / Linux. Решение должно быть простым (поскольку Ubuntu полностью поддерживает запуск 32-разрядных программ в 64-разрядной ОС) - достаточно установить 32-разрядные версии необходимых библиотек.

Самый простой и легкий способ сделать это - установить 32-битные версии всех наиболее часто используемых библиотек, установив пакет ia32-libsУстановить ia32-libs . Вы можете сделать это в Центре программного обеспечения или в Терминале с помощью:

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

Первоначально ia32-libsбыл предоставлен, потому что Ubuntu в своей конфигурации по умолчанию не поддерживал установку 32-битных пакетов Ubuntu в 64-битной системе. Теперь, когда это полностью поддерживается по умолчанию, ia32-libsпакет просто устанавливает те же 32-битные пакеты, которые будут установлены в вашей 64-битной системе, которые будут установлены в минимальной 32-битной системе. (Так что для тех, кто обеспокоен, это может не сработать сейчас, multarchкоторое поддерживается по умолчанию: оно все еще работает.)

Источник: Android / Eclipse Установка на Ubuntu 11.04 - aapt и adb не работают должным образом
См. Также: Eclipse Android Plugin - libncurses.so.5

Элия ​​Каган
источник
11
Это больше не кажется решением для Ubuntu 13.10.
Сахас Катта
10
@SahasKatta это работает askubuntu.com/a/165536/1599
phunehehe
Прочитайте комментарий @SahasKatta перед выстрелом консоли.
Данихп
3
В Ubuntu 13.10+ ia32-libs были заменены на lib32z1, lib32ncurses5 и lib32bz2-1.0 (сообщение предоставляется при попытке установить ia32-libs). lib32stdc ++ 6 не включен в этот список, но также является обязательным.
RBI
3
Этот ответ привел меня к тому, что сработало для меня: "sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0"
cjstehno
55

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

sudo apt-get install lib32stdc++6

Мартин Конечни
источник
Это хорошо работает для Ubuntu 13.10 64 бит
Тамил Сельван C
Просто решил ту же проблему для меня на Linux Mint 16 RC.
Тревор
3
работал для меня на совершенно новой Ubuntu 14.04. большое спасибо!
talha06
36

Эта тема была для меня исправлением.

В частности, установка этого пакета:

sudo apt-get install lib32z1 lib32z1-dev
ether_joe
источник
1
Ни один из ответов, кроме этого, не работал для меня. Спасибо :)
CodeMan
Я получаю много повторений за этот ответ ... спасибо ... каким-то образом пользователь 'Squeezle' изменил мой ответ, так что то, что выше, не является моим исходным постом. -1 на сайт за то, что кто-то может изменить мой ответ, но +1 для squeezle за публикацию того, что похоже на популярный ответ.
ether_joe
Только тот, который работал для меня на Ubuntu 14.04 64bit. Спасибо!
TJ Biddle
Отлично работает на Debian 8.1.0. У меня уже был lib32stdc ++ 6, поэтому я знал, что это не проблема. Еще раз спасибо!
Woahguy
16

Я только что столкнулся с этим на 64-битной Ubuntu 14.04. Мое решение было:

sudo apt-get install -y libc6:i386 libgcc1:i386 libstdc++6:i386 libz1:i386

На основе общих библиотек, необходимых для инструмента aapt:

$ readelf -d android-sdk-linux/build-tools/20.0.0/aapt | grep -i shared
 0x00000001 (NEEDED)                     Shared library: [librt.so.1]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libz.so.1]
 0x00000001 (NEEDED)                     Shared library: [libstdc++.so.6]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libgcc_s.so.1]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
bmaupin
источник
3
Благодарю. Это сработало для меня (Ubuntu 14.04 x64). Другие не делают.
Хуанин
7

Это работает для меня: aptitude install lib32stdc++6

user130613
источник
Это также устранило массу ошибок, связанных с R, для меня.
Акива
2
sudo apt-get install lib32z1

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

Зайдите в synaptic -> Поиск lib32z1 -> выберите время выполнения и разработку Применить и все готово.

Радж
источник
2

Для Ubuntu 15.04 необходимо следующее:

sudo apt-get install lib32stdc++6 lib32z1
Шесть
источник