Android adb не найден


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 is ( /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 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, забавно, что пакет Linux 64-bit ADT поставляется с 32 -битным adb под adt-bundle-linux/sdk/platform-tools/adb... Это также проблема в других дистрибутивах, например Fedora 17.
maxschlepzig

5
Я не могу установить библиотеки IA32! Зачем?
gtr123

1
У меня такая же ошибка, а затем я выполнил apt-get install 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

Примечание: если установка не удалась (плохие зависимости) попробуйте установить ее, скиньте aptitude. Вам будет предложено понизить версию некоторых библиотек, чтобы установка прошла успешно.
Бен Усман

4
Мне также нужно было установить lib32z1 (Ubuntu 13.10)
AntonS

E: Пакет 'lib32stdc ++ 6' не имеет кандидата на установку E: Пакет 'lib32gcc1' не имеет кандидата на установку E: Невозможно найти пакет lib32ncurses5
цифровой сантехник

Да, спасибо :) Отлично работает на ubuntu 13.10
Aukhan

30

Вам необходимо установить 32-битную glibc:

на 64-битной машине Fedore

# 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 install 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
Абдухафиз 08

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.
faizal

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 в Eclipse.


3

Для мультиархитектурного Debian 7.0 добавьте:

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

2
Похоже, это не имеет ничего общего с вопросом.
Эзотерическое имя

Оно работает. Но этого хватит с пакетами libc6: i386 и libstdc ++ 6: i386
Хорхе Сайнс


2

Для этого вам необходимо установить пакет ia32-libs (библиотеки IA32).




2

Из Ubuntu Multiarch HOWTO :

Некоторые пользователи, использующие Android SDK, могут столкнуться с проблемами при попытке запустить инструменты сборки или инструменты платформы на платформе 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

в 64-битной Ubuntu [12.04] - [14.10] и 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 install adb

adb не установлен на вашем компьютере

Попробуй это.


0

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

в блоге объясняется разрешение Ubuntu 13.10 для установки Chrome, Java и Fixing 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

Разница с другим ответом заключается в том, что имена пакетов включают в себя файл multipleib / теперь part.

(из Arch Wiki: Multilib # Включение , Android # Устранение неполадок )

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.