我已经安装了 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 studio 之前)。
我该怎么办?
如果未安装 libncurses,请安装它并重试。
对于 32 位二进制文件:
sudo apt-get install libncurses5:i386
对于 64 位二进制文件:
sudo apt-get install libncurses5
还可以使用此命令安装库集合,
sudo apt-get install ia32-libs
加载共享库时出错: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
此后,程序应该可以正常运行了。
如果您绝对确定已安装 libncurses(又名 ncurses),就像您已成功对库进行了“ls”操作一样,那么您可能正在运行 64 位 Linux 操作系统,并且只安装了 64 位 libncurses,当运行的程序(adb)是32位时。
如果是这样,32 位程序无法链接到 64 位库(并且无论如何也找不到它),因此您可能必须安装 libcurses 或 ncurses(32 位版本)。同样,如果您运行的是 64 位 adb,则您的 ncurses 可能是 32 位(一种可能但可能性较小的情况)。
对于 Redhat Linux 8 试试这个:
sudo yum install libncurses*
在 Arch Linux 上,您可以安装
ncurses5-compat-libs
AUR 软件包。
仅供参考,Arch Wiki android 页面中提到了它,以防万一您需要 Android Studio 的其他依赖项:https://wiki.archlinux.org/index.php/Android
在 Fedora 28 中使用:
sudo dnf install ncurses-compat-libs
对于 Redhat Linux 这有帮助,
sudo yum install ncurses-compat-libs
我使用
解决了这个问题ln -s libncursesw.so.5 /lib/x86_64-linux-gnu/libncursesw.so.6
在 ubunutu 18.10 上
在 Arch 上,我这样修复:
sudo ln -s /usr/lib/libncursesw.so.6 /usr/lib/libtinfo.so.6
在 Fedora 24 上安装
ncurses-compat-libs
帮助我解决了这个问题
(unable to start adb error while loading shared libraries: libncurses.so.5
)
您的系统可能不提供 android studio 使用的版本的 ncurses 库。我的 arch linux 安装只有 ncurses 6,但 android studio 需要版本 5。 您可以检查您的发行版是否有兼容包,或者使用 Rahmat Aligos 建议的解决方案。
Mixaz 的上述答案对我有用。但是,由于 PGP 检查失败,我在安装该软件包时遇到了问题。通过跳过签名来安装它是有效的,你可以尝试这个:
yaourt --m-arg "--skipchecksums --skippgpcheck" -Sb <your-package>
Oracle Linux 8 / Red Hat 8 (EL8):默认情况下,这些平台不安装文件 /lib64/libtinfo.so.5。要解决此问题,请安装 ncurses-compat-libs 软件包: 百胜安装 ncurses-compat-libs
https://dev.mysql.com/doc/mysql-solaris-excerpt/8.0/en/binary-installation.html
我在最近 3 个 Fedora(38、37、36)版本中遇到了这个问题。如果您想使用较旧的 x86_64 软件包,只需创建一个简单的符号链接即可解决该问题。
cd /usr/lib64/
ln -s libncurses.so.6 libncurses.so.5
链接之前
[root@terminus ~]# MegaCli64 -AdpAllInfo -aALL
MegaCli64: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
在符号链接之后。
[root@terminus lib64]# MegaCli64 -AdpAllInfo -aALL
Adapter #0
...