Eclipse安卓插件--libncurses.so.5

101

我在 Fedora 16 OS 的 Eclipse 上安装 ADT(Android Dev Tools)时遇到了很多困难。

Eclipse 本身运行良好。

按照指示,我首先安装了常规的 Android SDK,即操作系统级别的工具包。这一步很顺利,我能够在 tools 目录下使用 Android 应用程序。

在 Eclipse 中,稍微有点困难,因为我首先必须安装 GWT 或与 Google 相关的工具,这需要一个核心 Eclipse Indigo 更新 WST。最终,ADT 安装报告成功。

然而,每次打开 Eclipse 时,它都会弹出大量关于 libncurses.so.5 的窗口和以下日志:

[2012-04-04 02:06:35 - adb] /opt/android-sdk-linux/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[2012-04-04 02:06:35 - adb] 'adb version' failed!
/opt/android-sdk-linux/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[2012-04-04 02:06:35 - adb] Failed to parse the output of 'adb version':
Standard Output was:

Error Output was:
/opt/android-sdk-linux/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

[2012-04-04 02:06:35 - adb] /opt/android-sdk-linux/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[2012-04-04 02:06:35 - adb] 'adb version' failed!
/opt/android-sdk-linux/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[2012-04-04 02:06:35 - adb] Failed to parse the output of 'adb version':
Standard Output was:

Error Output was:
/opt/android-sdk-linux/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

当我尝试打开 Android SDK 管理器(在 Window 下),插件确实会打开,但窗口中没有关闭按钮(不像操作系统级别下的同一按钮,它们看起来也是一样的),所以唯一的方法是找到 Eclipse 的 PID 并将其杀掉。

7个回答

135

这完全解决了问题:

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

160
针对Ubuntu操作系统:apt-get install lib32ncurses5 lib32stdc++6 (由于依赖关系,会同时安装lib32gcc1) - vsekhar
1
@vsekhar,谢谢!我正在尝试在 Debin 64位上进行此操作,这些是我需要的软件包。 - Jeff LaFay
9
Arch:pacman -Syv lib32-libstdc++5 lib32-ncurses lib32-gcc-libs :)该命令是Arch Linux系统上的一个包管理器命令,它将更新软件包数据库并安装三个名为lib32-libstdc++5lib32-ncurseslib32-gcc-libs的32位库文件。 - Cheezmeister
非常惊讶,我不得不切换到64位才能编译Android 4.2,但实际上我不得不安装大量32位版本的库才能使其正常工作... - njzk2

60

这是由于 Android SDK 是一个32位应用程序,需要一些32位的共享库,

我在64位的Ubuntu上遇到了同样的问题,并使用以下方法进行了修复:

$ sudo apt-get install ia32-libs

17
这比需要的大约多了40个库和240MB。请查看foampile答案中所需的三个具体库。 - vsekhar
你没问题,所以我给你的评论点了赞。但它解决了主要问题,这也是我使用的解决方案。我只是不能执行apt-get install libncurses,因为它已经安装了。 - sourcerebels
你并没有覆盖现有的ncurses,而只是添加了lib32ncurses5(和相关库)。 - Ajax
1
@sourcerebels 谢谢伙计,这解决了我在Ubuntu 12.04 LTS上使用BitchX时缺少libncurses的问题 :) - GTodorov
5
您可以使用命令 sudo apt-get install libncurses5:i386 安装所需的库,相对于 ia32-libs 更加轻便。 - iomartin
好的。在Ubuntu 12.04.2 LTS上可以解决问题,我同意,需要下载很多东西,但它有效。谢谢! - Geppettvs D'Constanzo

18

仅安装libncurses5:

$ sudo apt-get install libncurses5:i386

ia32-libs会安装许多不必要的库。


问题已经解决了。我在这里运行的是Debian系统。 - corazza
谢谢,它对我在Ubuntu 12.04 64位上有所帮助。 - Aron

6
yaourt -S multilib/lib32-ncurses

适用于ArchLinux


1
@Oin 这是第一个出现“android ncurses 5 so error”的线程,因此它也与其他发行版/打包系统相关。 - Jason Axelson
我正在尝试为Android编译FFMPEG。现在你的命令正在安装库的第6个版本,但是FFMPEG需要它是第5个版本。如何安装第5个版本? - Anuran Barman

1

您可能没有安装libncurses5。 请尝试

rpm --install ncurses-libs

我已经安装了libncurses5。[root@t520 init.d]# yum install ncurses-libs.x86_64 已加载插件:langpacks,presto,refresh-packagekit 设置安装进程 包ncurses-libs-5.9-2.20110716.fc16.x86_64已经安装并且是最新版本 无需操作 - amphibient
yum安装ncurses-libs.i686 libstdc++.i686 libgcc.i686 - amphibient

0

0

在CentOS上也遇到了类似的问题:

./adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

我解决方法如下:

yum install ncurses ncurses-devel ncurses-libs ncurses-libs.i686   ncurses-devel.i686 

问题已解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接