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?


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.


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

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.


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.


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

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

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.


3

W przypadku multiarchowego Debiana 7.0 dodaj:

dpkg --add-architecture i386
apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

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





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


1

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

sudo apt-get dist-upgrade
sudo apt-get install ia32-libs

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

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.


1

sudo apt install adb

adb nie jest zainstalowany na twoim komputerze

Spróbuj tego.


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.


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 )

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.