Nie znaleziono adb dla Androida

103

Gdy uruchamiam aplikację na Androida z Eclipse, pojawia się ten błąd.

Unexpected exception 'Cannot run program "/home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb": error=2 No such file or directory' while attempting to get adb version from /home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb

KOPIUJ WKLEJ Z Zaćmienia Błąd

[2012-11-26 13:43:08 - adb] Unexpected exception 'Cannot run program "/home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb": error=2, No such file or directory' while attempting to get adb version from '/home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb'

Jednak mój adb znajduje się dokładnie w miejscu, w którym mówi, że nie jest.

Co jest nie tak i jak to naprawić?

Wchodzę do katalogu, w którym znajduje się adb ( /home/antz/Development/adt-bundle-linux/sdk/platform-tools/) i wpisałem adb i mówi

antz@antz-90X3A:~/Development/adt-bundle-linux/sdk/platform-tools$ ls  
aapt  aidl  dexdump  fastboot  llvm-rs-cc  renderscript  
adb   api   dx       lib       NOTICE.txt  source.properties  
antz@antz-90X3A:~/Development/adt-bundle-linux/sdk/platform-tools$ adb  
bash: /home/antz/Development/adt-bundle-linux/sdk/platform-tools/adb: No such file or directory

adb jest zielony, co oznacza, że ​​jest to plik wykonywalny, prawda?

na przykład dx jest również zielony i kiedy wpisałem dx w wierszu poleceń, działa ... co jest nie tak z adb?

ealeon
źródło
Czy na pewno tak jest, platform-tooldsa nie platform-tools?
Raghav Sood
/ home / antz / Development / adt-bundle-linux / sdk / platform-toolds / adb ISTNIEJE tam niepotrzebne "d"!
petey
przepraszam, że to literówka przeze mnie w tym poście
ealeon
czy sprawdziłeś uprawnienia do pliku / folderu? Pracujesz na Linuksie, upewnij się, że twój użytkownik ma rzeczywiście dostęp do tego folderu i uruchom adb
WarrenFaith

Odpowiedzi:

143

W systemie Linux pakiet Android SDK platform-toolszawierający adbkiedyś 32bit. Działał dobrze w 32bitsystemach. Ale w 64bitsystemach musisz ręcznie zainstalować bibliotekę IA32.

W przypadku dystrybucji opartych na Debianie spróbuj tego:

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5

Ale ponieważ wersja 24.0 platform-toolszawiera tylko 64bitpliki binarne - więc 32bitbiblioteki nie są już potrzebne.

Robin Chander
źródło
dzięki temu udało się. dlaczego nie uwzględnili tego kroku w samouczku?
ealeon
4
Google dostarczyło informacje. Zobacz developer.android.com/sdk/installing/index.html Kliknij Informacje dla innych platform, a następnie rozwiąż problemy z systemem Ubuntu.
Robin Chander
5
@RobinChander, zabawne, że pakiet Linux 64-bit ADT jest dostarczany z 32-bitowym adapterem pod adt-bundle-linux/sdk/platform-tools/adb... Jest to również problem w innych dystrybucjach, np. Fedorze 17.
maxschlepzig
5
Nie mogę zainstalować bibliotek IA32! Czemu?
gtr123
1
Wystąpił ten sam błąd, a następnie wykonałem apt-get install ia32-libs, ale jak teraz ponownie uruchomić konfigurację narzędzi ADT w eclipse? Używam Ubuntu 12.04
CodeKingPlusPlus
112

Nie można już instalować ia32-libs, dlatego konieczne jest posiadanie poszczególnych bibliotek 32-bitowych wymaganych przez adb

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5

A dla Ubuntu 13.10:

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1
ekun
źródło
Czy to odnosi się do określonej wersji Linuksa? Jeśli tak, czy mógłbyś umieścić to w swojej odpowiedzi.
CatShoes
Uwaga: jeśli instalacja się nie powiedzie (złe zależności), spróbuj ją zainstalować, wyrzuć aptitude. Sugerowałoby to obniżenie wersji niektórych bibliotek, aby instalacja przebiegła pomyślnie.
Ben Usman,
4
Musiałem również zainstalować lib32z1 (Ubuntu 13.10)
AntonS
E: Pakiet 'lib32stdc ++ 6' nie ma kandydata do instalacji E: Pakiet 'lib32gcc1' nie ma kandydata do instalacji E: Nie można zlokalizować pakietu lib32ncurses5
cyfrowy hydraulik
Tak, wielkie dzięki :) Świetnie działa na ubuntu 13.10
Aukhan
30

Musisz zainstalować 32-bitową glibc:

w 64-bitowej maszynie Fedore

# yum install glibc.i686

Usuwa to mylący komunikat „nie ma takiego pliku lub katalogu” podczas próby wykonania 32-bitowego pliku binarnego. Dzięki temu 64-bitowy system Fedora może wykonywać 64-bitowe pliki binarne.

To również usuwa mylący komunikat „nie jest dynamicznym plikiem wykonywalnym” z ldd podczas wywoływania ldd na 32-bitowym dynamicznym pliku wykonywalnym.

Teraz musisz zainstalować brakujące biblioteki 32-bitowe, z którymi pliki binarne w adt-bundle-linux / sdk / platform-tools są połączone:

# yum install zlib.i686 libstdc++.i686 ncurses-libs.i686 libgcc.i686

Otóż ​​to.

yokks
źródło
3
Dobrze widzieć rozwiązanie dla użytkowników Fedory!
Kyle
24

Używam 64-bitowego Ubuntu 14.04 LTS i działa dla mnie następujący kod ;

sudo apt-get install lib32z1 lib32z1-dev
sudo apt-get install lib32stdc++6


Podsumowanie:

Po wypróbowaniu apt-get install ia32-libs , ale narzędzie pakietu apt to sugeruje;

Package ia32-libs is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source.

However the following packages replace it:
  lib32z1 lib32ncurses5 lib32bz2-1.0

Wtedy powyższy kod działa dla mnie.

gihanchanuka
źródło
Próbowałem twojego rozwiązania, ale problem nadal występuje ze mną.
tvshajeer
1
Pracował dla Ubuntu 16
Abduhafiz
9

Działa to świetnie w 64-bitowej wersji Ubuntu 13.04

Nie można już instalować ia32-libs, dlatego konieczne jest posiadanie poszczególnych bibliotek 32-bitowych wymaganych przez adb

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
GothamNite
źródło
Przetestowany. Działa świetnie na 13.04 64bit. Wielkie dzięki: D
Blaze Tama
Na mojej 64-bitowej maszynie Ubuntu 14.04 zależność lib32tinfo5 została również zainstalowana automatycznie.
faizal
8

W systemie Arch Linux:

Włącz repozytoria „multiarch” w /etc/pacman.conf

następnie uruchomić:

root@box#pacman -Syu

root@box#pacman -S lib32-glibc lib32-zlib lib32-libstdc++5 lib32-ncurses lib32-gcc-libs
Naumdev
źródło
To zadziałało dla mnie. Jest to jednak multilibrepozytorium, które trzeba włączyć.
paldepind
4

Używam Ubuntu 12.04 LTS i to polecenie jest jedyną rzeczą, która działała dla mnie:

sudo apt-get install lib32z1 lib32z1-dev

Po uruchomieniu tego z wiersza poleceń udało mi się wygenerować plik R.java (znak ostrzegawczy, że coś w instalacji narzędzi Android SDK nie jest do końca w porządku), wykonując Projekt> Wyczyść w Eclipse.

J Steven Perry
źródło
3

W przypadku multiarchowego Debiana 7.0 dodaj:

dpkg --add-architecture i386
apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
XXX
źródło
2
Wydaje się, że nie ma to nic wspólnego z pytaniem.
Ezoteryczny pseudonim ekranowy
To działa. Ale wystarczy z pakietami libc6: i386 i libstdc ++ 6: i386
Jorge Sainz
3

W Fedorze 17 lub 18:

sudo yum install redhat-lsb.i686
xwindows
źródło
2

Aby to działało, musisz zainstalować pakiet ia32-libs (biblioteki IA32).

anthonyjruffa
źródło
2

Zrobiłem to w mojej Linux Mint 12:

   chmod +x PATH/adb
Cleórbete
źródło
2

W Ubuntu Multiarch HOWTO :

Niektórzy użytkownicy korzystający z zestawu Android SDK mogą napotkać problemy podczas próby uruchomienia narzędzi do kompilacji lub narzędzi platformy na platformie bitowej amd64. Jako zamiennik ia32-libs, użytkownicy powinni po prostu zainstalować następujące biblioteki:

dpkg --add-architecture i386
aptitude update
aptitude install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386
bonh
źródło
1

Zainstaluj te biblioteki w linux apt-get install ia32-libs

Khumzzz
źródło
1

Uruchom poniższe polecenia. U mnie to zadziałało

sudo apt-get dist-upgrade
sudo apt-get install ia32-libs
hemanth reddy
źródło
1

w systemie ubuntu 64 bity [12.04] - [14.10] i elementarnym systemie operacyjnym 64 bity

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386
David Hackro
źródło
1

Czasami wystarczy nadać plikom sdk niezbędne uprawnienia.

sudo chmod -R +x /path/to/android-sdk-linux

Uruchom ponownie Android Studio i zobacz, czy to naprawi.

Problemy z uprawnieniami występują zwykle podczas kopiowania / przenoszenia plików SDK z partycji NTFS lub kopiowania z innego komputera.

Gayan Weerakutti
źródło
1

sudo apt install adb

adb nie jest zainstalowany na twoim komputerze

Spróbuj tego.

Gautam
źródło
0

http://abhinavasblog.blogspot.sg/2013/10/working-with-ubuntu-1304-and-1310-java.html

blog wyjaśnia rozwiązanie do Ubuntu 13.10 w celu zainstalowania Chrome, Javy i naprawy Android SDK.

Abhinava
źródło
Zachęcamy do umieszczania linków do zewnętrznych zasobów, ale proszę dodać kontekst wokół łącza, aby inni użytkownicy mieli pojęcie, co to jest i dlaczego się tam znajduje. Zawsze cytuj najbardziej odpowiednią część ważnego linku, na wypadek gdyby strona docelowa była nieosiągalna lub została trwale wyłączona. Na przyszłość odpowiedź już jest. Zobacz ten artykuł meta.
Johannes Stadler,
0

Prawidłowa aktualna kombinacja dla Arch Linux jest następująca::

[Ta część pozostaje niezmieniona] Odkomentuj następującą sekcję w /etc/pacman.conf:

...
[multilib]
Include = /etc/pacman.d/mirrorlist
...

Następnie:

sudo pacman -Syu && sudo pacman -S multilib/lib32-libstdc++5 multilib/lib32-zlib

Różnica w stosunku do drugiej odpowiedzi polega na tym, że nazwy pakietów zawierają teraz multilib / część.

(z Arch Wiki: Multilib # Enabling , Android # Troubleshooting )

Ivan Bartsov
źródło