Ошибка при загрузке разделяемых библиотек: libncurses.so.5:
Я установил Android Studio и попытался запустить свой первый проект, и у меня есть следующая ошибка:
Error Output was: /home/user/android-studio/sdk/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
Я уже пытался запустить
sudo ldconfig
но это не помогает. Недавно я установил libncurses (прежде чем использовать студию Android).
Что мне делать?
Ответы
Ответ 1
Если вы абсолютно уверены, что libncurses, aka ncurses, установлен, так как вы сделали успешную "ls" библиотеки, возможно, вы используете 64-битную операционную систему Linux и имеете только 64-разрядные libncurses установлен, когда запущенная программа (adb) - 32 бит.
Если это так, 32-битная программа не может ссылаться на 64-битную библиотеку (и не будет ее размещать в любом случае), поэтому вам может потребоваться установить libcurses или ncurses (32-разрядная версия). Аналогично, если вы используете 64-битный adb, возможно, ваши ncurses - 32 бит (возможный, но менее вероятный сценарий).
Ответ 2
Если libncurses не установлен, установите его и повторите попытку.
sudo apt-get install libncurses5:i386
Также установите коллекцию библиотек, используя эту команду
sudo apt-get install ia32-libs
Ответ 3
при загрузке разделяемых библиотек: libncurses.so.5
Если вы видите это, у вашего дистрибутива, возможно, установлена более новая версия libncurse. Сначала узнайте, какая версия libncurses имеет ваш дистрибутив:
$ ls -1 /usr/lib/libncurses*
/usr/lib/libncurses.so
/usr/lib/libncurses++.so
/usr/lib/libncurses++w.so
/usr/lib/libncursesw.so
/usr/lib/libncurses++w.so.6
/usr/lib/libncursesw.so.6
/usr/lib/libncurses++w.so.6.0
/usr/lib/libncursesw.so.6.0
В этом случае мы имеем дело с версией 6, поэтому мы делаем две символические ссылки:
$ sudo ln -s /usr/lib/libncursesw.so.6.0 /usr/lib/libncurses.so.5
$ sudo ln -s /usr/lib/libncursesw.so.6.0 /usr/lib/libtinfo.so.5
После этого программа должна работать нормально.
Ответ 4
Ваша система, скорее всего, не предоставляет библиотеку ncurses в используемой версии Android. У моей установки linux linux были только ncurses 6, но для Android-студии нужна версия 5.
Вы можете проверить, есть ли у вашего дистрибутива пакет совместимости или использовать решение, предложенное Рахматом Алигосом.
Ответ 5
На Arch я исправляю вот так:
sudo ln -s /usr/lib/libncursesw.so.6 /usr/lib/libtinfo.so.6
Ответ 6
В Fedora 28 используют:
sudo dnf install ncurses-compat-libs
Ответ 7
Я решил проблему с помощью
ln -s libncursesw.so.5 /lib/x86_64-linux-gnu/libncursesw.so.6
по убунуту 18.10
Ответ 8
Установка ncurses-compat-libs
на Fedora 24 помогла мне в этом вопросе (unable to start adb error while loading shared libraries: libncurses.so.5
)
Ответ 9
Для Redhat Linux 8 попробуйте это:
sudo yum install libncurses*
Ответ 10
В Arch Linux вы можете установить пакет AUR для ncurses5-compat-libs
.
К вашему сведению, это упомянуто на странице Android Arch Wiki, на случай, если вам понадобятся другие зависимости для Android Studio: https://wiki.archlinux.org/index.php/Android