![如何安装 Android 的构建依赖项?](https://linux22.com/image/1092348/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85%20Android%20%E7%9A%84%E6%9E%84%E5%BB%BA%E4%BE%9D%E8%B5%96%E9%A1%B9%EF%BC%9F.png)
我正在尝试使用这些包构建 Android 源代码。但我收到此错误:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
[sudo] password for asdf:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libc6-dev-i386
E: Unable to locate package lib32ncurses5-dev
E: Unable to locate package ia32-libs
E: Unable to locate package lib32readline5-dev
E: Unable to locate package lib32z-dev
我尝试下载并安装 libc6-dev-i386 debian 软件包这里。但是当我双击 .deb 文件时,Ubuntu 软件管理器显示错误的架构“amd64”。
(我的操作系统:32 位 Ubuntu 10.10(已更新),处理器:AMD phenom II 64 位。)
答案1
我认为 android.com 页面有点过时了。网上流传着许多不同的解决方法。我会尽量总结一下对我有用的方法。
这里有两个有用的页面(尽管不完善):
首先,根据以下情况判断,您可能希望使用java6
而不是java5
一些小组讨论主题 。因此,如果您在说明中看到 java5,请注意您需要用 sun java6 或 open java 6 进行替换。
以下是我的 32 位系统所需的软件包:
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev openjdk-6-jdk ant gcc-multilib g++-multilib
这些就绪后,构建repo
:
sudo curl http://android.git.kernel.org/repo -o /usr/local/bin/repo
sudo chmod a+x /usr/local/bin/repo
然后在你的构建目录中:
repo init -u git://android.git.kernel.org/platform/manifest.git
repo sync
这wildartist 网站继续:
如果遇到“未找到命令”消息,则可以使用以下命令执行此操作:
$ sudo sh /usr/local/bin/repo init -u git://android.git.kernel.org/platform/manifest.git $ sudo sh /usr/local/bin/repo sync
虽然排队很快,但是获取代码还是需要花费一些时间,因为项目本身非常庞大。经过漫长的等待,你会发现 checkout 流程已经结束了。接下来要做的就是 MAKE 来构建项目。但是你会收到 Java 版本不正确的消息,构建过程失败。这时你可以修改 build/core/main.mk 文件,将文本 ”1.5″ 改为 “1.6″。
此时,您应该已经处理好了依赖项和代码。您仍然需要make
。
由于代码库和支持库和组件正在发生变化,很难使说明保持完全最新,这就是为什么这个过程有这么多相互冲突的操作方法。
答案2
您正在尝试安装一些存储库中没有的 32 位软件包。由于您的配置是 64 位,因此您无法安装 i386 软件包。尝试在 Synaptic 软件包管理器中查找类似的软件包。例如,搜索 libc6-dev 并安装适合您系统的软件包。
答案3
编辑:请参阅 jgbelacqua 的回答。Getlibs 可能应该成为社区 wiki 之类的...
获取库:
getlibs /path/to/binary
getlibs -l i386librarytoinstall.so
getlibs -p i386packagename
getlibs -w www.website.com/i386package.deb
getlibs -i /home/chris/i386package.deb
http://ubuntuforums.org/showthread.php?t=474790
@Pedram:恐怕你的回答实际上具有误导性。