Android adb не знайдено


103

Коли я запускаю додаток для Android від затемнення, я отримую цю помилку.

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

КОПІЮВАННЯ ПАСТИ ВІД помилки затемнення

[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 знаходиться саме в тому місці, де сказано, що це не так.

Що не так і як це виправити?

Я входжу в каталог, де 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?
Рагав Суд

/ home / antz / Development / adt-bundle-linux / sdk / platform-toolds / adb В цьому немає зайвого "d"!
petey

вибачте, що це
друкарня

Ви перевірили дозволи файлу / папки? Ви працюєте над Linux, переконайтеся, що ваш користувач може реально отримати доступ до цієї папки та запустити adb
WarrenFaith

Відповіді:


143

У Linux platform-toolsпакет Android SDK, який 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.
Робін Чандер

5
@RobinChander, смішно, що 64-розрядний пакет ADT Linux поставляється з 32 -бітним adb під adt-bundle-linux/sdk/platform-tools/adb... Це також проблема в інших дистрибутивах, наприклад, Fedora 17.
maxschlepzig

5
Я не можу встановити IA32 libs! Чому?
gtr123

1
У мене така ж помилка, і тоді я apt-get встановити ia32-libs, але тепер, як я перезавантажую конфігурацію інструментів ADT у затемненні? Я запускаю 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

Примітка: якщо установка не вдається (погані залежності), спробуйте встановити, вона кидає здатність. Було б запропоновано зменшити кількість бібліотек, щоб установка пройшла успішно.
Бен Усман

4
Також мені потрібно було встановити lib32z1 (Ubuntu 13.10)
AntonS

E: У пакета 'lib32stdc ++ 6' немає кандидата на встановлення E: У пакета 'lib32gcc1' немає кандидата на встановлення E: Неможливо знайти пакет lib32ncurses5
сантехнік

Так, спасибі багато :) Працює чудово на ubuntu 13.10
Aukhan

30

Ви повинні встановити 32-бітний glibc:

у Fedore 64-бітної машини

# yum install glibc.i686

Це видаляє оманливе повідомлення "немає такого файлу чи каталогу" при спробі виконання 32-бітного двійкового файлу. Завдяки цьому 64-розрядна система Fedora здатна виконувати 64 бітні бінарні файли.

Це також видаляє оманливе повідомлення "не динамічний виконуваний файл" ldd при виклику ldd на 32-бітовому динамічному виконаному файлі.

Тепер ви повинні встановити відсутні 32-бітні бібліотеки, двійкові файли під adt-bundle-linux / sdk / platform-tools пов'язані з:

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

Це воно.


3
Приємно бачити рішення для користувачів Fedora!
Кайл

24

Я використовую 64-розрядний Ubuntu 14.04 LTS, і мені працює наступний код ;

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


Підсумок:

Після того як я спробував apt-get встановити ia32-libs , але інструмент apt пакета пропонує це;

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
Абдухафіз

9

Це чудово працює у 64-бітній версії Ubuntu 13.04

Ви більше не можете встановлювати ia32-libs, тому потрібно мати 32-бітні бібліотеки, необхідні adb

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

Випробуваний. Чудово працює на 13.04 64bit. Велике спасибі: D
Blaze Tama

На моїй 64-бітній машині Ubuntu 14.04 залежність lib32tinfo5 також була встановлена ​​автоматично.
фазал

8

В Arch linux:

Увімкніть сховища "мультиархів" у /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 in Eclipse.




2

Для цього вам потрібно встановити пакет ia32-libs (бібліотеки IA32).




2

З Ubuntu Multiarch HOWTO :

Деякі користувачі, що використовують Android SDK, можуть зіткнутися з проблемами при спробі запуску інструментів збирання або інструментів платформи на бітній платформі amd64. В якості заміни ia32-libs, користувачі повинні добре встановити наступні бібліотеки:

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



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 або копіювання з іншого комп’ютера.


1

sudo apt встановити adb

adb не встановлено на вашому ПК

Спробуйте це.


0

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

в блозі пояснюється роздільна здатність Ubuntu 13.10 для встановлення Chrome, Java та виправлення Android SDK.


Посилання на зовнішні ресурси рекомендуються, але, будь ласка, додайте контекст навколо посилання, щоб ваші колеги користувачі мали уявлення про те, що це таке і чому воно існує. Завжди цитуйте найбільш релевантну частину важливого посилання на випадок, якщо цільовий сайт недоступний або виходить постійно в автономний режим. Просто на майбутнє відповідь вже дана. Дивіться цю мета-статтю.
Йоганнес Штадлер

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 # Включення , Android # Виправлення неполадок )

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.