Problemy z Eclipse i Android SDK

54

Zainstalowałem Eclipse, openjdk6 oraz pobrałem i rozpakowałem plik menedżera sdk.

Teraz, kiedy utworzyłem projekt na Androida, otrzymałem następujący błąd:

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

I ten, gdy próbowałem utworzyć Menedżera AVD:

[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
źródło
sudo apt-get install libstdc ++ 6-4.6-dev [lub wyszukaj na synaptic z libstdc ++]. i sudo apt-get install zlib1g-dev
shantanu
3
@shantanu Problem nie polega na tym, że -devbrakuje plików nagłówkowych ( pakietów), ale że Android SDK potrzebuje 32-bitowych wersji bibliotek. Pliki nagłówkowe są potrzebne tylko do budowania oprogramowania opartego na bibliotece, a nie do uruchamiania gotowego oprogramowania.
Eliah Kagan

Odpowiedzi:

47

Ten problem występuje, ponieważ zestaw Android SDK jest skompilowany dla 32-bitowego systemu GNU / Linux, a Twój system Ubuntu to 64-bitowy system GNU / Linux. Rozwiązanie powinno być łatwe (ponieważ Ubuntu w pełni obsługuje uruchamianie programów 32-bitowych w 64-bitowym systemie operacyjnym) - wystarczy zainstalować 32-bitowe wersje potrzebnych bibliotek.

Najprostszym i najłatwiejszym sposobem jest zainstalowanie 32-bitowych wersji wszystkich najczęściej używanych bibliotek, poprzez zainstalowanie pakietu ia32-libsZainstaluj ia32-libs . Możesz to zrobić w Centrum oprogramowania lub w terminalu za pomocą:

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

Pierwotnie ia32-libszostał udostępniony, ponieważ Ubuntu w domyślnej konfiguracji nie obsługiwał instalowania 32-bitowych pakietów Ubuntu w systemie 64-bitowym. Teraz, gdy jest to w pełni obsługiwane domyślnie, ia32-libspakiet powoduje po prostu zainstalowanie tych samych 32-bitowych pakietów w systemie 64-bitowym, które zostałyby zainstalowane w minimalnym systemie 32-bitowym. (Więc dla każdego, kto się martwi, może to nie działać teraz, które multarchjest obsługiwane domyślnie: nadal działa).

Źródło: Instalacja Androida / Eclipse na Ubuntu 11.04 - aapt i adb nie działają poprawnie
Zobacz także: Eclipse Android Plugin - libncurses.so.5

Eliah Kagan
źródło
11
To już nie wydaje się być rozwiązaniem dla Ubuntu 13.10.
Sahas Katta,
10
@SahasKatta to działa askubuntu.com/a/165536/1599
phunehehe 27.10.2013
Przeczytaj komentarz @SahasKatta przed strzałem z konsoli.
danihp
3
Ubuntu 13.10+ ia32-libs zostały zastąpione przez lib32z1, lib32ncurses5 i lib32bz2-1.0 (komunikat podany podczas próby instalacji ia32-libs). lib32stdc ++ 6 nie jest uwzględniony na tej liście, ale jest również wymagany.
RBI
3
Ta odpowiedź doprowadziła mnie do tego, co dla mnie zadziałało: „sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0”
cjstehno
55

Jeśli używasz Debian Jessie (lub Ubuntu 13.10+), spróbuj

sudo apt-get install lib32stdc++6

Martin Konecny
źródło
Działa dobrze dla Ubuntu 13.10 64-bit
Tamil Selvan C
Właśnie rozwiązałem ten sam problem dla Linux Mint 16 RC.
Trevor
3
pracował dla mnie nad zupełnie nowym Ubuntu 14.04. wielkie dzięki!
talha06
36

Ten wątek był dla mnie poprawką.

W szczególności instalowanie tego pakietu:

sudo apt-get install lib32z1 lib32z1-dev
ether_joe
źródło
1
Żadna z odpowiedzi, oprócz tej, nie działała dla mnie. Dzięki :)
codeMan
Dostaję wiele powtórzeń dla tej odpowiedzi ... dzięki ... jakoś użytkownik 'Squeezle' zmienił moją odpowiedź, więc to, co powyżej, nie jest moim oryginalnym postem. -1 do strony za umożliwienie zmiany mojej odpowiedzi przez kogokolwiek, ale +1 za ściśnięcie za opublikowanie czegoś, co wygląda jak popularna odpowiedź.
ether_joe
Tylko jeden, który pracował dla mnie na Ubuntu 14.04 64bit. Dziękuję Ci!
TJ Biddle,
Działa doskonale w systemie Debian 8.1.0. Miałem już lib32stdc ++ 6, więc wiedziałem, że to nie jest problem. Dzięki jeszcze raz!
woahguy,
16

Właśnie natknąłem się na to na Ubuntu 14.04 64-bit. Moim rozwiązaniem było:

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

Na podstawie bibliotek wspólnych wymaganych dla narzędzia 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
źródło
3
Dzięki. To zadziałało dla mnie (Ubuntu 14.04 x64). Inni nie.
Juanin
7

To działa dla mnie: aptitude install lib32stdc++6

użytkownik130613
źródło
To także wyeliminowało mnóstwo błędów związanych z R.
Akiva,
2
sudo apt-get install lib32z1

To zadziałało dla mnie.

Przejdź do synaptic -> Wyszukaj lib32z1 -> wybierz zarówno środowisko uruchomieniowe, jak i programowanie Zastosuj i gotowe.

Raj
źródło
2

W przypadku Ubuntu 15.04 konieczne było:

sudo apt-get install lib32stdc++6 lib32z1
Sześć
źródło