W systemie Ubuntu pojawia się błąd „Brak takiego pliku lub katalogu”, gdy próbuję wykonać polecenie.
Sprawdziłem za pomocą ls -la
, plik adb
jest tam i ma flagę „x”. Dlaczego więc pojawia się komunikat „Brak takiego pliku lub katalogu”?
~/Programs/android-sdk-linux_x86/platform-tools$ ./adb
bash: ./adb: No such file or directory
~/Programs/android-sdk-linux_x86/platform-tools$ ls -la
total 34120
drwxrwxr-x 3 silverstri silverstri 4096 2011-10-08 18:50 .
drwxrwxr-x 8 silverstri silverstri 4096 2011-10-08 18:51 ..
-rwxrwxr-x 1 silverstri silverstri 3764858 2011-10-08 18:50 aapt
-rwxrwxr-x 1 silverstri silverstri 366661 2011-10-08 18:50 adb
-rwxrwxr-x 1 silverstri silverstri 906346 2011-10-08 18:50 aidl
-rwxrwxr-x 1 silverstri silverstri 328445 2011-10-08 18:50 dexdump
-rwxrwxr-x 1 silverstri silverstri 2603 2011-10-08 18:50 dx
drwxrwxr-x 2 silverstri silverstri 4096 2011-10-08 18:50 lib
-rwxrwxr-x 1 silverstri silverstri 14269620 2011-10-08 18:50 llvm-rs-cc
-rwxrwxr-x 1 silverstri silverstri 14929076 2011-10-08 18:50 llvm-rs-cc-2
-rw-rw-r-- 1 silverstri silverstri 241 2011-10-08 18:50 llvm-rs-cc.txt
-rw-rw-r-- 1 silverstri silverstri 332494 2011-10-08 18:50 NOTICE.txt
-rw-rw-r-- 1 silverstri silverstri 291 2011-10-08 18:50 source.properties
file adb
Odpowiedzi:
Jest to plik wykonywalny, w którym brakuje wymaganych bibliotek. Użyj,
ldd
aby zobaczyć, czego potrzebuje, a następnie podaj te pliki.źródło
Zestaw Android SDK wymaga bibliotek 32-bitowych. Prawdopodobnie korzystasz z wersji 64-bitowej i potrzebujesz 32-bitowej biblioteki lib. Oto wskazówki dotyczące rozwiązywania problemów z developer.android.com
Ubuntu 13.10 (Saucy Salamander) i powyżej, zainstalować
libncurses5:i386
,libstdc++6:i386
, izlib1g:i386
pakiety używając apt-get:W przypadku wcześniejszych wersji Ubuntu zainstaluj
ia32-libs
pakiet za pomocą apt-get:źródło
jest także dla mnie potrzebny.
źródło
To samo widziałem po zmianie mojego komputera z 32-bitowego Ubuntu na 64-bitowy. Bash zgłasza „Brak takiego pliku lub katalogu” plików, które wyraźnie istniałyby z atrybutem wykonania.
Naprawiono problem. Są to „Biblioteka GNU C: 32-bitowe biblioteki współdzielone dla AMD64”
Wygląda na to, że to błąd w bashu. Zauważ, że zmieniłem również domyślną powłokę z dash na bash za pomocą
zanim spróbowałem uruchomić 32-bitowy plik wykonywalny. Nie jestem więc pewien, czy problem wystąpiłby z domyślną powłoką deski rozdzielczej
źródło
Na nowej instalacji Xubuntu 13.10 x64 muszę
adb
uruchomić z:A także
zlib1g:i386
doaapt
pracy.a jeśli nadal coś przegapisz, użyj:
źródło
sudo dpkg --add-architecture i386; sudo apt-get update
aby udostępnić libstdc ++ 6: i386ldd adb
W przypadku adb upewnij się, że masz SDK rozpakowany i uruchomiłeś SDK Manager, aby w pełni wypełnić SDK. Dodatkowo upewnij się, że masz zainstalowane następujące elementy: A.) JDK 6 lub nowszy B.) lib32stdc ++ 6 C.) lib32ncurses5
hoffmanc był najbliżej poprawnego rozwiązania. Naprawdę nie rozumiem, dlaczego odpowiedź Daniela Becka jest oznaczona jako poprawna, gdy nie jest nawet blisko i nie ma nic wspólnego z problemem.
Nawiasem mówiąc, jeśli spróbujesz uruchomić naprawdę nieistniejące polecenie (tj .:
dostaniesz: fakecommand: komenda nie została znaleziona, podczas gdy w twojej sytuacji, wynik, który widzisz, faktycznie pochodzi z adb, chociaż nie jest to do końca jasne.
źródło
Wydaje się, że Ubunto ma pewne problemy ze zgodnością LSB, więc spróbuj tego, jeśli korzystasz z Ubunto
Zauważ, że ldd pokaże, że wszystkie biblioteki są tam, ale ich nie ma.
źródło