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?

Ealeon
источник
Вы уверены, что это так 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
GothamNite
источник
Проверено. Отлично работает на 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
XXX
источник
2
Похоже, это не имеет ничего общего с вопросом.
Эзотерическое имя
Оно работает. Но этого хватит с пакетами libc6: i386 и libstdc ++ 6: i386
Хорхе Сайнс
3

В Fedora 17 или 18:

sudo yum install redhat-lsb.i686
xwindows
источник
2

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

Anthonyjruffa
источник
2

Я сделал это в своем Linux Mint 12:

   chmod +x PATH/adb
Cleórbete
источник
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

Установите эти библиотеки в linux apt-get install ia32-libs

Khumzzz
источник
1

Выполните эти команды ниже. Это сработало для меня

sudo apt-get dist-upgrade
sudo apt-get install ia32-libs
Hemanth Reddy
источник
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 # Устранение неполадок )

Иван Барцов
источник