在Ubuntu 12.10 X64上构建AOSP (4.2.2)失败

3

我正在尝试在Ubuntu 12.10 X64上构建AOSP(4.2.2),但是我遇到了以下错误:

armin@ubuntu:~/source$ make -j1 ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.2.2 TARGET_PRODUCT=full TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a HOST_ARCH=x86 HOST_OS=linux HOST_OS_EXTRA=Linux-3.5.0-17-generic-x86_64-with-Ubuntu-12.10-quantal HOST_BUILD_TYPE=release BUILD_ID=JDQ39 OUT_DIR=out ============================================ 检查构建工具版本...external/bluetooth/bluedroid/Android.mk:8:没有 BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR,只使用通用配置 find:../../vendor/unbundled_google/libs/gcm/gcm-client/src':没有这个文件或目录find:../../vendor/unbundled_google/libs/gcm/gcm-server/src':没有这个文件或目录find:../../vendor/unbundled_google/libs/gcm/gcm-client/src':没有这个文件或目录find:../../vendor/unbundled_google/libs/gcm/gcm-server/src':没有这个文件或目录find:src':没有这个文件或目录vendor/nvidia/grouper/keymaster/Android.mk:16:ifeq后面有多余文本 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/Effect_Tick.ogg: system/media/audio/ui/Effect_Tick.ogg 被忽略PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressStandard.ogg: system/media/audio/ui/KeypressStandard.ogg被忽略PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressSpacebar.ogg:system/media/audio/ui/KeypressSpacebar.ogg被忽略PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressDelete.ogg:system/media/audio/ui/KeypressDelete.ogg被忽略PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressReturn.ogg:system/media/audio/ui/KeypressReturn.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/VideoRecord.ogg:system/media/audio/ui/VideoRecord.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/camera_click.ogg:system/media/audio/ui/camera_click.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/LowBattery.ogg:system/media/audio/ui/LowBattery.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/Dock.ogg:system/media/audio/ui/Dock.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/Lock.ogg:system/media/audio/ui/Lock.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/Unlock.ogg:system/media/audio/ui/Unlock.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Sceptrum.ogg:system/media/audio/ringtones/Sceptrum.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressStandard_120.ogg:system/media/audio/ui/KeypressStandard.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressSpacebar_120.ogg:system/media/audio/ui/KeypressSpacebar.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressDelete_120.ogg:system/media/audio/ui/KeypressDelete.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressReturn_120.ogg:system/media/audio/ui/KeypressReturn.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/notifications/ogg/Capella.ogg:system/media/audio/notifications/Capella.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/notifications/ogg/CetiAlpha.ogg:system/media/audio/notifications/CetiAlpha.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/notifications/ogg/Polaris.ogg:system/media/audio/notifications/Polaris.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/notifications/ogg/Pollux.ogg:system/media/audio/notifications/Pollux.ogg被忽略 PRODUCT_COPY_FILES frameworks/base/data/sounds/notifications/ogg/Procyon.ogg:system/media/audio/notifications/Procyon.ogg被忽略 PRODUCT

有人可以帮我解决这个问题吗?

4个回答

2
您需要集中注意力的是这一行:

/bin/bash: prebuilts/tools/gcc-sdk/g++: 无法执行二进制文件

可能是因为您使用的是64位系统,而该二进制文件是32位的。也许您还缺少其他一些东西,因此我最好向您指出一个有关在Ubuntu/x64上编译Android(JB)的教程。请查看先决条件并安装您需要的所有内容。
{{link1:xda-developers上的教程}}

我重新安装了所有的前提条件。现在当我输入make -j5时,我得到以下内容:make: *** 没有规则可以制作目标“prebuilts/ndk/current/platforms/android-9/arch-arm/usr/lib/libc.so”,需要“out/target/product/generic/obj/SHARED_LIBRARIES/libz_intermediates/LINKED/libz.so”。停止。——如果我输入make -j5 -k,我会得到很多错误126(ex err)。 - Armin
你正在编译哪个设备?这些文件应该从仓库中下载。尝试同步你的仓库并检查文件是否存在。(prebuilts/ndk/current/platforms/android-9/arch-arm/usr/lib/libc.so) - Bruce
我正在为NEXUS 7编译。 - Armin

1

当我尝试在Ubuntu 12.04上构建ICS时,我遇到了相同的问题。后来我在某个论坛上读到,目前它不适用于12.04,Ubuntu正在努力解决这个问题。由于12.04是LTS(长期支持),所以过一段时间后Ubuntu可能会发布更新,其中构建ICS将起作用。我想12.10也存在同样的问题,所以我认为您应该使用11.04。虽然它已经过时且不会发布更新,但对于AOSP来说它运行良好。我正在使用它,这是目前唯一的可能解决方案。


1
你可以通过编辑位于frameworks/base/Android.mk中关于gcm的整个部分(从“GCM的参考文档”到“include $(BUILD_DROIDDOC)”)来消除前4个。
通过删除frameworks/base/data/sounds/AllAudio.mk中除一行外的所有行(选择要保留的任何一行),可以轻松消除PRODUCT_COPY_FILES中的一些。
这样留下了一个我记不清的单独问题(“找到src”)。
来源: https://groups.google.com/forum/#!msg/android-building/H8DrWy4bEIM/Y6-HD6e0IxsJ

1
这是我所做的:
  1. 从Google获取Google Cloud Messaging(GCM)代码。
  2. 将其复制到供应商目录中。
  3. 构建并享受。
以下是详细信息:

按照https://code.google.com/p/gcm/source/checkout中的说明获取GCM源代码。

% croot
% cd vendor
% mkdir -p unbundled_google/libs;cd !$
% cp -pr <GCM  dir of the google pkg. where you see /gcm > .
% croot
% <build whatever your were building>

我不确定是否需要使用gcm_client_deprecated目录,因为它看起来更加实质化并且有更多的代码,但是我可以使用当前的gcm-client目录进行sdk制作。


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