Di Ubuntu, saya mendapatkan kesalahan 'Tidak ada file atau direktori' ketika saya mencoba menjalankan perintah.
Saya telah memeriksa ls -la
, file adb
ada di sana dan memiliki bendera 'x' Jadi mengapa saya mendapatkan 'Tidak ada file atau direktori'?
~/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
Jawaban:
Ini adalah file yang dapat dieksekusi yang merindukan perpustakaan yang diperlukan. Gunakan
ldd
untuk melihat apa yang dibutuhkan, lalu berikan file-file ini.sumber
Android SDK membutuhkan perpustakaan 32-bit. Anda mungkin menggunakan 64-bit dan membutuhkan 32-bit libs. Berikut adalah petunjuk pemecahan masalah dari developer.android.com
Untuk Ubuntu 13.10 (Saucy Salamander) dan di atas, menginstal
libncurses5:i386
,libstdc++6:i386
danzlib1g:i386
paket menggunakan apt-get:Untuk versi Ubuntu yang lebih lama, instal
ia32-libs
paket menggunakan apt-get:sumber
juga perlu bagi saya.
sumber
Saya juga melihat hal yang sama setelah mengganti mesin saya dari 32 bit ubuntu ke 64 bit. Bash akan melaporkan 'Tidak ada file atau direktori' file yang jelas ada dengan atribut eksekusi.
Memperbaiki masalah. Ini adalah "Perpustakaan GNU C: perpustakaan bersama 32-bit untuk AMD64"
Sepertinya ini adalah bug di bash. Perhatikan bahwa saya juga mengubah shell default dari dash ke bash menggunakan
sebelum saya mencoba menjalankan executable 32 bit. Jadi saya tidak yakin apakah masalah akan terjadi dengan shell dasbor default
sumber
Pada instal Xubuntu 13.10 x64 yang baru saya harus
adb
menjalankan dengan:Dan juga
zlib1g:i386
untuk membuataapt
pekerjaan.dan jika Anda masih melewatkan sesuatu gunakan:
sumber
sudo dpkg --add-architecture i386; sudo apt-get update
untuk membuat libstdc ++ 6: i386 tersedialdd adb
Untuk adb, pastikan Anda telah membuka SDK dan menjalankan SDK Manager untuk mengisi penuh SDK. Selain itu pastikan Anda telah menginstal yang berikut: A.) JDK 6 atau lebih baik B.) lib32stdc ++ 6 C.) lib32ncurses5
hoffmanc adalah yang paling dekat untuk memperbaikinya, saya tidak begitu mengerti mengapa jawaban dari Daniel Beck ditandai sebagai benar ketika itu bahkan tidak dekat dan tidak ada hubungannya dengan masalah.
Kebetulan, jika Anda mencoba menjalankan perintah yang benar-benar tidak ada (yaitu:
Anda akan mendapatkan: fakecommand: perintah tidak ditemukan, sedangkan dalam situasi Anda output yang Anda lihat sebenarnya berasal dari adb meskipun tidak begitu jelas itu yang terjadi.
sumber
Ubunto tampaknya memiliki beberapa masalah dengan kompatibilitas LSB, jadi coba ini jika Anda menggunakan Ubunto
Perhatikan bahwa ldd akan mengurutkan menunjukkan bahwa semua perpustakaan ada di sana, tetapi tidak.
sumber