编译Android 2.3源码错误总结

2023-10-26

虽然版本2.3很老了,但是这是在完全新的Ubuntu上面编译的,可以使我们更加熟练.

1.

host C: acp <= build/tools/acp/acp.c
<command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]
<built-in>:0:0: note: this is the location of the previous definition
In file included from /usr/include/stdlib.h:24:0,
                 from build/tools/acp/acp.c:11:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
 #  include <sys/cdefs.h>
                         ^
compilation terminated.
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] Error 1

解决
sudo apt-get install libc6-dev-i386      //  Embedded GNU C Library: 32-bit development libraries for AMD64
sudo apt-get install libx32gcc-4.8-dev
sudo apt-get install lib32readline-gplv2-dev

libc6-dev 的解释      Embedded GNU C Library: Development Libraries and Header Files
gcc-multilib   的解释 GNU C compiler (multilib files)

2.
host C++: libhost <= build/libs/host/pseudolocalize.cpp
<command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]
<built-in>:0:0: note: this is the location of the previous definition
In file included from build/libs/host/include/host/pseudolocalize.h:4:0,
                 from build/libs/host/pseudolocalize.cpp:1:
/usr/include/c++/4.8/string:38:28: fatal error: bits/c++config.h: No such file or directory
 #include <bits/c++config.h>
                            ^
compilation terminated.
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/pseudolocalize.o] Error 1

解决:
sudo apt-get install gcc-4.8-multilib g++-4.8-multilib


3.
frameworks/base/tools/aapt/AaptAssets.cpp:1447:53:   required from here
frameworks/base/include/utils/KeyedVector.h:193:31: error: ‘indexOfKey’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
frameworks/base/include/utils/KeyedVector.h:193:31: note: declarations in dependent base ‘android::KeyedVector<android::String8, android::sp<AaptDir> >’ are not found by unqualified lookup
frameworks/base/include/utils/KeyedVector.h:193:31: note: use ‘this->indexOfKey’ instead
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/AaptAssets.o] Error 1

解决办法:  frameworks/base/tools/aapt/Android.mk
       在第28行增加:
       LOCAL_CFLAGS += -Wno-format-y2k -fpermissive

4.
frameworks/base/include/utils/KeyedVector.h:193:31: note: declarations in dependent base ‘android::KeyedVector<android::String8, android::wp<android::AssetManager::SharedZip> >’ are not found by unqualified lookup
frameworks/base/include/utils/KeyedVector.h:193:31: note: use ‘this->indexOfKey’ instead
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/AssetManager.o] Error 1

解决办法:在 frameworks/base/libs/utils/Android.mk
在第60行后面增加-fpermissive:       
       LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive

5.
make: *** [out/host/linux-x86/obj/EXECUTABLES/grxmlcompile_intermediates/grxmlcompile.o] 错误 1
    或者 make: *** [out/host/linux-x86/obj/EXECUTABLES/grxmlcompile_intermediates/grxmlcompile.o] Error 1
解决办法:cd external/srec
   复制拷贝下面的命令到终端:
     wget " https://github.com/CyanogenMod/android_external_srec/commit/4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff "
     patch -p1 < 4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff
    rm -f 4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff
    cd ../..

6.
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/native/dalvik_system_Zygote.o] Error 1
所以,这个问题只能修改源代码来解决
在dalvik/vm/native/dalvik_system_Zygote.c中间增加一个头文件定义#include <sys/resource.h>
        #include "Dalvik.h"
        #include "native/InternalNativePriv.h"
        #include <sys/resource.h>
 
 /usr/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1

解决:
sudo apt-get install lib32z1-dev


7.
collect2: error: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error

解决:
sudo apt-get install lib32ncurses5-dev


8.
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libext4_utils_intermediates/output_file.o] Error 1

解决:
由于系统的文件换了位置, 此时需要将  /usr/include/x86_64-linux-gnu/zconfig.h 拷贝到上级目录,此时编译才通过
将 zconfig.h 拷贝到 /usr/include/ 目录即可

9.

make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] error 1
解决办法:系版本高,在配置环境的时候,gcc安装了高到版本,所以gcc版本太高导致,需要降低gcc版本级别。
ubuntu 32bit系统下安装gcc 4.4的最好方法是仅用以下两条命令,不需要其它命令,否则编译时可能会出错。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 300
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 300
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 350   
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 350


10.
g++: selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/lib/libSR_Session.so] Error 1
make: *** Waiting for unfinished jobs....
target Prebuilt:  (out/target/product/generic/system/usr/share/bmd/RFFspeed_501.bmd)
g++: selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/lib/libSR_Recognizer.so] Error 1

解决:
sudo apt-get install g++-4.4-multilib gcc-4.4-multilib


11.
BEGIN failed--compilation aborted at external/webkit/WebCore/dom/make_names.pl line 38.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/HTMLNames.cpp] Error 2

解决办法:
sudo apt-get install libswitch-perl


12.
SDL init failure, reason is: No available video device  模拟器起不来

解决:

sudo apt-get install libsdl1.2debian:i386


下面是编译2.2的时候遇到的问题

13.

make: *** [out/host/linux-x86/obj/EXECUTABLES/localize_intermediates/localize] 错误 1

解决方法:
修改./framework/base/tools/localize/Android.mk文件
ifeq ($(HOST_OS),linux)
#LOCAL_LDLIBS += -lrt       把这行注释掉,改为下面一行。
LOCAL_LDLIBS += -lrt -lpthread
endif


14.

make: ***[out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/appt] 错误 1

解决方法:
打开Android.mk文件
$gedit frameworks/base/tools/aapt/Android.mk
编辑下面一行:
ifeq ($(HOST_OS),linux)
#LOCAL_LDLIBS += -lrt       把这行注释掉,改为下面一行。
LOCAL_LDLIBS += -lrt -lpthread
endif


Description ResourcePath LocationType
Project 'AOSP' is missing required library: 'out/target/common/obj/JAVA_LIBRARIES/google-common_intermediates/javalib.jar'AOSP Build pathBuild Path Problem
  out/target/common/obj/APPS/CalendarProvider_intermediates/src/src/com/android/providers/calendar/EventLogTags.java
    out/target/common/obj/APPS/ContactsProvider_intermediates/src/src/com/android/providers/contacts/EventLogTags.java


make sdk打包SDK,有了sdk包就可以在IDE环境中开发安卓应用程序了
Package SDK Stubs: out/target/common/obj/PACKAGING/android_jar_intermediates/android.jar
Package SDK: out/host/linux-x86/sdk/android-sdk_eng.mec_linux-x86.zip
zImage文件默认位于源代码根目录下的子目录
/prebuilt/android-arm/kernel/kernel-qemu


编译安卓4.1报错

make: *** [out/target/product/generic/system/etc/apns-conf.xml] Error 127  安装下面的软件

mec@mecC:~/jellybean$ sudo apt-get  install libxml2-utils

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编译Android 2.3源码错误总结 的相关文章

随机推荐

  • php 操作redis

    原文地址 http www cnblogs com weafer archive 2011 09 21 2184059 html PHP redis中文文档 phpredis是php的一个扩展 效率是相当高有链表排序功能 对创建内存级的模块
  • OpenCV - C++实战(01) — OpenCV简介

    目录 第1章 OpenCV简介 1 1 简介 1 1 1 OpencV 库简介 1 1 2 命名空间 1 2 OpenCV模块 1 3 装载 显示和存储图像 1 3 1 创建图像 1 3 2 读取图像 1 3 3 定义窗口与显示图像 1 3
  • 07.Spring Bean 加载 - BeanDefinitionReader

    基本概念 BeanDefinitionReader 该接口的作用就是加载 Bean 在 Spring 中 Bean 一般来说都在配置文件中定义 而在配置的路径由在 web xml 中定义 所以加载 Bean 的步骤大致就是 加载资源 通过配
  • 服务器系统reid,服务器主机做reid

    服务器主机做reid 内容精选 换一换 安装并启动Agent后 迁移Agent会自动收集源端服务器信息并发送给主机迁移服务默认迁移任务下 收集的所有信息仅用于数据迁移 不会用做其他用途 具体收集源端哪些信息可查看主机迁移服务会收集源端的哪些
  • C语言怎么判断文件是否为空

    http zhidao baidu com question 58621913 html fr qrl cid 866 index 1 fr2 query 文件为空时 只有文件结束符EOF 当读取第一个字符是EOF时即可判断文件是不是空 i
  • 【Java面试题】用float型定义变量:float = 3.14;,是否正确?

    题目 用float型定义变量 float 3 14 是否正确 解析 不正确 赋值运算符 左右两边的精度类型不匹配 在默认情况下 包括小数点的实数 如本题中的3 14 被存储为double类型 即双精度 而float类型定义的变量 如本题中的
  • 【测评】思维导图的战争!手绘和数字思维导图哪个更实用?

    思维导图是我们在工作中非常广泛运用的工具 能够有效的理清思维 并清晰的展示给他人共享 而在这之中又分为了两派 一派支持手绘思维导图 一派支持数字思维导图 究竟哪一个更好 它们之间可以平衡吗 gt gt 数字思维导图最好的体现是什么 手写和绘
  • BasicDao

    DBUtil Druid任然存在不足 如果再进行一次封装 gt BasicDao作为实现所有数据库常用的基础查询操作 1 所有数据库操作的基础类 public class BasicDao
  • 字符串补全空格是一种常见的字符串处理操作,它可以用于在字符串的两侧或者特定位置插入空格,以使字符串的长度达到指定的长度

    字符串补全空格是一种常见的字符串处理操作 它可以用于在字符串的两侧或者特定位置插入空格 以使字符串的长度达到指定的长度 在Python中 我们可以使用多种方法实现字符串的补全空格操作 下面是一些常见的方法及其示例代码 1 使用字符串的内置方
  • java中的锁(一)(Synchronized)

    JAVA中的锁 乐观锁 悲观锁 自旋锁 synchronized 原子性 可见性 有序性 可重入性 Synchronized底层原理 JAVA中的锁主要用于保障多线程中数据的一致性 在使用对象或者方法之前加锁 此时如果有其他线程也需要使用该
  • 一次暴露面全开的红帽渗透测试【getshell】

    声明 本文仅限于技术讨论与分享 严禁用于非法途径 若读者因此作出任何危害网络安全行为后果自负 与本号及原作者无关 0x01 信息收集阶段 注 本次信息收集过程主要使用FOFA网络探测平台 https fofa info 一开始进行收集的时候
  • COCOAPI评价指标解析及改进

    程序入口 python eval coco py 特别说明 results test json格式如下 image id 19 category id 1 bbox 121 4 116 02 560 56 303 83 score 0 97
  • windows下安装redis和redis扩展

    windows下安装redis 下载地址 https github com MSOpenTech redis releases Redis 支持 32 位和 64 位 这个需要根据你系统平台的实际情况选择 这里我们下载 Redis x64
  • 链路mtu

    常常见到交换机和网卡说明中提到支持Jumbo Frame 但我一直对以太网的Jumbo Frame 巨帧 如何使用不太理解 今日在网上找到2则现摘录下来 相信看了以后大家会有收获 这是一种厂商标准的超长帧格式 专门为千兆以太网而设计 目前还
  • 移动硬盘需要格式化才能打开如何解决?

    当我们把移动硬盘接入 就提示需要格式化 这是对我们有多大的仇怨啊 其实不是这样的 当频繁使用可移动硬盘很容易造成损坏 有时甚至会提示格式化 而提示要格式化是硬盘出现了问题导致的 那么什么原因才会出现的情况呢 遇到移动硬盘需要格式化才能打开如
  • 【算法训练 (day2)】积木画(dp问题)

    目录 一 问题 题目描述 输入格式 输出格式 输出样例 二 解题思路 合法性判定 状态压缩 推导dp式 代码实现 一 问题 题目描述 小明最近迷上了积木画 有这么两种类型的积木 分别为 I 型 大小为 2 个单位面积 和 L 型 大小为 3
  • Spdlog库编译/交叉编译

    1 只包含头文件 速度很快 无需依赖第三方库 支持跨平台 Linux Windows on 32 64 bits 支持多线程 可对日志文件进行循环输出 可每日生成日志文件 可支持控制台日志输出 可选的异步日志 可定义日志格式 2 获取spd
  • centos7下opencv3.4.1 的安装和编译全解

    centos7下opencv3 4 1 的安装和编译全解 一 下载和安装 1 下载网址 https opencv org 注意系统版本 2 linux下依赖库安装 正式安装opencv之前 需要安装好opencv编译的依赖包 列举如下 1
  • 【Pandas】修改Pandas的行或列的名字(重命名)

    pandas DataFrame rename 使用函数 DataFrame rename mapper None index None columns None axis None copy True inplace False leve
  • 编译Android 2.3源码错误总结

    虽然版本2 3很老了 但是这是在完全新的Ubuntu上面编译的 可以使我们更加熟练 1 host C acp lt build tools acp acp c