Проблеми з Eclipse та Android SDK


54

Я встановив Eclipse, openjdk6 і завантажив і витягнув файл менеджера sdk.

Тепер, коли я створив проект 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.

sudo apt-get install libstdc ++ 6-4.6-dev [або пошук у синаптичному режимі з libstdc ++]. і sudo apt-get install 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 перед знімком консолі.
danihp

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 біт
Tamil Selvan C

Щойно вирішив ту саму проблему для мене на Linux Mint 16 RC.
Тревор

3
працював для мене на абсолютно новій Ubuntu 14.04. дуже дякую!
talha06

36

Ця нитка стала для мене виправкою.

Зокрема, встановлення цього пакета:

sudo apt-get install lib32z1 lib32z1-dev

1
Жодна відповідь, крім цієї, не працювала на мене. Дякую :)
кодМай

Я отримую багато відповіді на цю відповідь ... дякую ... якимось чином користувач "Squeezle" змінив мою відповідь, тому те, що вище, не є моїм початковим повідомленням. -1 на сайт, щоб я міг змінити мою відповідь, але +1, щоб натиснути, щоб розмістити повідомлення, що схоже на популярну відповідь.
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]

3
Дякую. Це працювало для мене (Ubuntu 14.04 x64). Інші - ні.
Хуанін

7

Це працює для мене: aptitude install lib32stdc++6


Це також усунуло для мене тону помилок, пов'язаних з R.
Аківа

2
sudo apt-get install lib32z1

Це працювало для мене.

Перейти до Synaptic -> Пошук lib32z1 -> вибрати як час виконання і розробки Застосувати і ур зробити.



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.