ไม่พบ adb Android


103

เมื่อฉันเรียกใช้แอพ android จาก eclipse ฉันได้รับข้อผิดพลาดนี้

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

คัดลอกวางจากข้อผิดพลาด Eclipse

[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'

อย่างไรก็ตาม adb ของฉันอยู่ในตำแหน่งที่ระบุว่าไม่ใช่

เกิดอะไรขึ้นและฉันจะแก้ไขได้อย่างไร

ฉัน cd ลงในไดเร็กทอรีที่ adb คือ ( /home/antz/Development/adt-bundle-linux/sdk/platform-tools/) และฉันพิมพ์ใน adb และมันบอกว่า

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 เป็นสีเขียวซึ่งหมายถึงปฏิบัติการได้ถูกต้อง?

ตัวอย่างเช่น dx เป็นสีเขียวเช่นกันและเมื่อฉันพิมพ์ dx ลงในพรอมต์คำสั่งมันใช้งานได้ ... adb มีอะไรผิดปกติ?


คุณแน่ใจหรือplatform-tooldsไม่platform-tools?
Raghav Sood

/ home / antz / Development / adt-bundle-linux / sdk / platform-toolds / adb มี "d" ที่ไม่จำเป็นอยู่ในนั้น!
petey

ขออภัยที่ฉันพิมพ์ผิดในโพสต์นี้
ealeon

คุณตรวจสอบสิทธิ์ของไฟล์ / โฟลเดอร์แล้วหรือยัง คุณกำลังทำงานบน linux ตรวจสอบให้แน่ใจว่าผู้ใช้ของคุณสามารถเข้าถึงโฟลเดอร์นั้นได้จริงและเรียกใช้ adb
WarrenFaith

คำตอบ:


143

บน Linux, Android SDK platform-toolsแพคเกจบรรจุที่ใช้จะเป็นadb 32bitมันทำงานได้ดีใน32bitระบบ แต่ใน64bitระบบคุณต้องติดตั้งไลบรารี IA32 ด้วยตนเอง

สำหรับการแจกแจงแบบ Debian ให้ลองทำดังนี้:

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

แต่เนื่องจาก v24.0 platform-toolsมีเฉพาะ64bitไบนารีดังนั้นจึง32bitไม่จำเป็นต้องใช้ไลบรารีอีกต่อไป


ขอบคุณสิ่งนี้ทำให้มันใช้งานได้ เหตุใดจึงไม่รวมขั้นตอนนี้ไว้ในบทช่วยสอน
ealeon

4
Google ได้ให้ข้อมูล โปรดดูdeveloper.android.com/sdk/installing/index.html คลิกที่ข้อมูลสำหรับแพลตฟอร์มอื่น ๆ จากนั้นแก้ไขปัญหา Ubuntu
Robin Chander

5
@RobinChander ตลกดีที่ชุด ADT Linux 64 บิตมาพร้อมกับ adb 32 บิตภายใต้adt-bundle-linux/sdk/platform-tools/adb... นี่เป็นปัญหาภายใต้การแจกแจงอื่น ๆ เช่น Fedora 17.
maxschlepzig

5
ฉันไม่สามารถติดตั้ง IA32 libs ได้! ทำไม?
gtr123

1
ฉันได้รับข้อผิดพลาดเดียวกันจากนั้นฉันติดตั้ง apt-get ia32-libs แต่ตอนนี้ฉันจะรีสตาร์ทการกำหนดค่าของเครื่องมือ ADT ใน eclipse ได้อย่างไร ฉันใช้ Ubuntu 12.04
CodeKingPlusPlus

112

คุณไม่สามารถติดตั้ง ia32-libs ได้อีกต่อไปดังนั้นคุณต้องใช้ไลบรารี 32 บิตแต่ละรายการที่ adb ต้องการ

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

และสำหรับ Ubuntu 13.10:

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

นี่หมายถึง Linux เวอร์ชันเฉพาะหรือไม่ ถ้าเป็นเช่นนั้นคุณช่วยตอบได้ไหม
CatShoes

หมายเหตุ: หากการติดตั้งล้มเหลว (การพึ่งพาที่ไม่ดี) ลองติดตั้งมันจะทำให้เกิดความถนัด ขอแนะนำให้คุณปรับลดรุ่น librares บางส่วนเพื่อให้การติดตั้งสำเร็จ
Ben Usman

4
ฉันต้องติดตั้ง lib32z1 (Ubuntu 13.10)
AntonS ด้วย

E: แพ็คเกจ 'lib32stdc ++ 6' ไม่มีตัวเลือกการติดตั้ง E: แพ็คเกจ 'lib32gcc1' ไม่มีตัวเลือกการติดตั้ง E: ไม่พบแพ็คเกจ lib32ncurses5
ช่างประปาหลัก

ขอบคุณมาก :) ทำงานได้ดีบน Ubuntu 13.10
Aukhan

30

คุณต้องติดตั้ง glibc 32 บิต:

ในเครื่อง Fedore 64 บิต

# yum install glibc.i686

วิธีนี้จะลบข้อความ 'ไม่มีไฟล์หรือไดเร็กทอรี' ที่ทำให้เข้าใจผิดเมื่อพยายามรันไบนารี 32 บิต เนื่องจากระบบ 64 บิต Fedora สามารถเรียกใช้งานไบนารี 64 บิตได้

นอกจากนี้ยังลบข้อความ 'not a dynamic executable' ที่ทำให้เข้าใจผิดของ ldd เมื่อเรียกใช้ ldd บนไฟล์ปฏิบัติการแบบไดนามิก 32 บิต

ตอนนี้คุณต้องติดตั้งไลบรารี 32 บิตที่หายไปซึ่งไบนารีภายใต้ adt-bundle-linux / sdk / platform-tools จะเชื่อมโยงกับ:

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

แค่นั้นแหละ.


3
พบวิธีแก้ปัญหาสำหรับผู้ใช้ Fedora!
Kyle

24

ฉันใช้อูบุนตู 14.04 LTS 64 บิตและรหัสต่อไปนี้การทำงานสำหรับฉัน ;

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


สรุป:

หลังจากที่ฉันลองapt-get install ia32-libsแต่ apt package tool แนะนำว่า;

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

จากนั้นรหัสด้านบนก็ใช้ได้สำหรับฉัน


ฉันลองวิธีแก้ปัญหาของคุณแล้ว แต่ปัญหายังคงเกิดขึ้นกับฉัน
tvshajeer

1
ทำงานกับ Ubuntu 16
Abduhafiz

9

ใช้งานได้ดีใน Ubuntu 13.04 เวอร์ชัน 64 บิต

คุณไม่สามารถติดตั้ง ia32-libs ได้อีกต่อไปดังนั้นคุณต้องใช้ไลบรารี 32 บิตแต่ละรายการที่ adb ต้องการ

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

ทดสอบแล้ว. ใช้งานได้ดีบน 13.04 64 บิต ขอบคุณมาก: D
Blaze Tama

บนเครื่อง Ubuntu 14.04 64 บิตของฉันการพึ่งพา lib32tinfo5 ก็ถูกติดตั้งโดยอัตโนมัติเช่นกัน
faizal

8

บน Arch linux:

เปิดใช้งานที่เก็บ "multiarch" ใน /etc/pacman.conf

จากนั้นเรียกใช้:

root@box#pacman -Syu

root@box#pacman -S lib32-glibc lib32-zlib lib32-libstdc++5 lib32-ncurses lib32-gcc-libs

สิ่งนี้ได้ผลสำหรับฉัน เป็นที่multilibเก็บที่ต้องเปิดใช้งาน
paldepind

4

ฉันใช้ Ubuntu 12.04 LTS และคำสั่งนี้เป็นสิ่งเดียวที่ใช้ได้ผลสำหรับฉัน:

sudo apt-get install lib32z1 lib32z1-dev

เมื่อฉันเรียกใช้จากบรรทัดคำสั่งฉันก็สามารถรับไฟล์ R.java เพื่อสร้าง (สัญญาณบอกเล่าว่ามีบางอย่างในการติดตั้งเครื่องมือ Android SDK ของคุณไม่ถูกต้อง) โดยทำ Project> Clean ใน Eclipse


3

สำหรับ multiarch Debian 7.0 ให้เพิ่ม:

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

2
ดูเหมือนว่าไม่มีส่วนเกี่ยวข้องกับคำถาม
ชื่อหน้าจอลึกลับ

มันได้ผล. แต่ก็เพียงพอสำหรับแพ็คเกจ libc6: i386 และ libstdc ++ 6: i386
Jorge Sainz





2

จากUbuntu Multiarch HOWTO :

ผู้ใช้บางรายที่ใช้ Android SDK อาจพบปัญหาเมื่อพยายามเรียกใช้ build-tools หรือ platform-tools บนแพลตฟอร์ม amd64 bit ในการเปลี่ยน ia32-libs ผู้ใช้ควรจะติดตั้งไลบรารีต่อไปนี้:

dpkg --add-architecture i386
aptitude update
aptitude install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386


1

เรียกใช้คำสั่งเหล่านี้ด้านล่าง มันใช้ได้ผลสำหรับฉัน

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

1

ใน ubuntu 64 บิต [12.04] - [14.10] และ Elementary OS 64 บิต

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386

1

บางครั้งการให้สิทธิ์ที่จำเป็นแก่ไฟล์ sdk

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

รีสตาร์ท Android Studio และดูว่าแก้ไขได้หรือไม่

ปัญหาการอนุญาตมักเกิดขึ้นเมื่อคุณคัดลอก / ย้ายไฟล์ sdk จากพาร์ติชัน NTFS หรือคัดลอกจากคอมพิวเตอร์เครื่องอื่น



0

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

บล็อกอธิบายความละเอียดของ Ubuntu 13.10 สำหรับการติดตั้ง Chrome, Java และ Fixing Android SDK


ขอแนะนำให้ใช้ลิงก์ไปยังแหล่งข้อมูลภายนอก แต่โปรดเพิ่มบริบทรอบ ๆ ลิงก์เพื่อให้ผู้ใช้รายอื่นได้ทราบว่ามันคืออะไรและเหตุใดจึงมี อ้างอิงส่วนที่เกี่ยวข้องที่สุดของลิงก์ที่สำคัญเสมอในกรณีที่ไซต์เป้าหมายไม่สามารถเข้าถึงได้หรือออฟไลน์ถาวร เพียงเพื่ออนาคตคำตอบก็มีให้แล้ว ดูบทความเมตานี้
Johannes Stadler

0

คำสั่งผสมปัจจุบันที่ถูกต้องสำหรับ Arch Linux มีดังนี้:

[ส่วนนี้ไม่มีการเปลี่ยนแปลง] ไม่ใส่ความคิดเห็นในส่วนต่อไปนี้ใน/etc/pacman.conf:

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

จากนั้น:

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

ความแตกต่างกับคำตอบอื่น ๆ คือชื่อแพคเกจรวมmultilib / part ในขณะนี้

(จาก Arch Wiki: Multilib # Enabling , Android # Troubleshooting )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.