Android 编译环境配置搭建(Ubuntu 12.04)及环境导致编译错误QA

android后台截屏实现(1)--源码编译 前段时间接到任务要实现后台截图并上传的功能,在网上查了好久,发现遇到这类问题的人还不少。经过一番对比后发现还是修改并编译源码中的screencap类然后通过JNI来调用这种方法比较可靠,而其他的在java层实现的基本都是只能截取Activity,在service里是不行的,还有一个是在java层去读取framebuffer然后解析什么的,原理上和screencap是一样的,但是看到最后发现博主把关 阅读详情

1、编译环境准备

下载Android代码需要大约需要8.5G,单独编译一套代码需要30G左右,多套的话硬盘空间至少需要100G以上。

2. 配置android在Linux下的编译环境

 安装编译所需的软件包: 

1 $ sudo apt-get install git-core gnupg flex bison gperf build-essential   zip curl libc6-dev libncurses5-dev x11proto-core-dev    libx11-dev libreadline6-dev libgl1-mesa-glx  libgl1-mesa-dev g++-multilib mingw32 tofrodos    python-markdown libxml2-utils xsltproc zlib1g-dev lib32readline6-dev gcc-4.4 g++-4.4 g++-4.4-multilib gcc-4.4-multilib
2$ sudoln-s /usr/lib/i386-linux-gnu/libX11.so.1 /usr/lib/i386-linux-gnu/libX11.so
3

$cd /usr/bin/

$sudomv gcc gcc.bak

$sudo ln -s gcc-4.4 gcc

$sudomvg++ g++.bak

$sudo ln -s g++-4.4 g++

 

 

Python2.6-2.7,download from http://www.Python.org/download/ (Ubuntu12.04一般自带)。

3.安装JDK
在Ubuntu下安装JDK比较简单,可以在软件中心直接搜索安装,也可以按以下方法安装:

安装Java 6(android2.3或更新的版本4.0以上等)

$ sudo add-apt-repository"deb http://archive.canonical.com/ lucid partner" 
$ sudo apt
-get update 
$ sudo apt
-get install sun-java6-
jdk 

安装Java 5(amdroid2.3之前Froyo版本和更老的版本)

$ sudo add-apt-repository"deb http://archive.ubuntu.com/ubuntu hardy main multiverse" 
$ sudo add
-apt-repository"deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse" 
$ sudo apt
-get update 
$ sudo apt
-get install sun-java5-jdk 

4、配置ccache


你可以选择是否搭建使用ccache编译器缓存设置。Ccache充当一个编译器缓存,可以用来加速再次编译。这招很管用,如果你经常需要清理环境或如果你频繁切换不同的构建产品来多次编译,这样设置后使之重复编译的时间缩短。

$vi ~/.bashrc

<code><strong><span class="kwd">export</span><span class="pln"> USE_CCACHE</span><span class="pun">=</span><span class="lit">1</span></strong><span class="pln"><strong> //系统默认存放在<strong>~/.ccache</strong></strong></span></code>
<code><span class="pln"></span></code><code><strong><span class="kwd">export</span><span class="pln"> CCACHE_DIR</span><span class="pun">=<</span><span class="pln">path</span><span class="pun">-</span><span class="pln">to</span><span class="pun">-</span><span class="pln">your</span><span class="pun">-</span><span class="pln">cache</span><span class="pun">-</span><span class="pln">directory</span><span class="pun">> //<strong>建议设置大小为50-100GB</strong></span></strong></code>
<code><strong>$ source ~/.bashrc</strong></code>
<code><strong>在你下载完代码后,执行下面的命令</strong></code>
<code><strong><span class="pln">prebuilts</span><span class="pun">/</span><span class="pln">misc</span><span class="pun">/</span><span class="pln">linux</span><span class="pun">-</span><span class="pln">x86</span><span class="pun">/</span><span class="pln">ccache</span><span class="pun">/</span><span class="pln">ccache </span><span class="pun">-</span><span class="pln">M </span><span class="lit">50G</span></strong><span class="pln"><strong> 
</strong></span></code>

如果编译的版本为android4.0即Ice Cream Sandwich (4.0.x),执行下面的命令

prebuilt/linux-x86/ccache/ccache-M50G 


配置好后,这些设置会一直保留

5.Android 编译报错(环境问题)QA:

Question:

"mkimage" command not found - U-Boot images will not be built
make[3]: *** [arch/arm/boot/uImage] Error 1
make[2]: *** [uImage] Error 2
make[1]: *** [sub-make] Error 2
Answer:
sudo apt-get install uboot-mkimage
Question:
g++: g++: selected multilib '32' not installed
selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] Error 1
make: *** Waiting for unfinished jobs....
make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] Error 1
Answer:
sudo apt-get install g++-4.4-multilib gcc-4.4-multilib

 
Question:
/usr/bin/ld: cannot find -lreadline

make: *** [out/host/linux-x86/obj/EXECUTABLES/sqlite3_intermediates/sqlite3] Error 1

make: *** Waiting for unfinished jobs....

Answer:

sudo apt-get install libreadline6-dev lib32readline6-dev

 

Question:

/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1

Answer:

  sudo apt-get install libc6-dev-i386

Question:

make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] error 1

Answer:

  sudo apt-get install g++-multilib

Question:

external/clearsilver/cgi/cgi.c:22: fatal error: zlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error 1

Answer:

sudo apt-get install zlib1g-dev

Question:
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1

Answer:

sudo apt-get install lib32z1-dev

Question:
bison -d  -o out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y
/bin/bash: bison: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Error 127

Answer:

sudo apt-get install bison

Question:
Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
/bin/bash: flex: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127

Answer:

sudo apt-get install flex

Question:
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1

Answer:

sudo apt-get install lib32ncurses5-dev

Question:
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55: fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/main-common.o] Error 1

Answer:

sudo apt-get install libx11-dev

Question:
sh: gperf: not found
calling gperf failed: 32512 at ./makeprop.pl line 96.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h] Error 25
make: *** Deleting file `out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h'

Answer:

sudo apt-get install gperf



From: http://blog.youkuaiyun.com/jacobywu/article/details/24431915


-------------------------------------------------------------------------------------------------------------------------------------


Traceback (most recent call last):
  File "scripts/make_css_property_names.py", line 238, in <module>
    in_generator.Maker(CSSPropertiesWriter).main(sys.argv)
  File "/root/Android_src/external/chromium_org/third_party/WebKit/Source/core/scripts/in_generator.py", line 119, in main
    writer.write_files(options.output_dir)
  File "/root/Android_src/external/chromium_org/third_party/WebKit/Source/core/scripts/in_generator.py", line 77, in write_files
    self._write_file(output_dir, generator(), file_name)
  File "scripts/make_css_property_names.py", line 233, in generate_implementation
    gperf = subprocess.Popen(gperf_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
  File "/usr/lib/python2.7/subprocess.py", line 709, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1326, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
make: *** [out/target/product/generic/obj/GYP/shared_intermediates/blink/CSSPropertyNames.cpp] 错误 1
make: *** 正在等待未完成的任务....

 

      解决:

        确保已安装以下环境:

        git gnupg flex bison gperf build-essential   zip curl libc6-dev x11proto-core-dev   g++-multilib  tofrodos   python-markdown libxml2-utils xsltproc


Ubuntu 12.04 apt-get 安装 OpenJDK 7 实战指南 Java 是一种跨平台编程语言,其运行依赖于符合规范的 Java 运行时环境(JRE)与开发工具包(JDK)。在 Linux 发行版中,包管理器(如 apt-get)是安装和维护 JDK 的核心机制,它确保二进制兼容性、ABI 稳定性及安全更新可追溯。Ubuntu 12.04 作为经典 LTS 版本,采用 OpenJDK 7 作为默认实现,其包命名体系(如 openjdk-7-jdk、openjdk-7-jre-headless)体现模块化设计思想,而 update-alternatives 工具则支撑多版 阅读详情

相关推荐

Ubuntu 14.04 下 Apache WebDAV 配置实战指南

WebDAV 是基于 HTTP 的标准化文件协作协议,通过扩展 GET/PUT/DELETE 等方法实现跨平台文件管理。其核心原理是将文件系统操作映射为 RESTful HTTP 请求,在 Apache 中由 mod_dav 和 mod_dav_fs 模块协同实现协议解析与磁盘 I/O。该方案技术价值突出:零客户端依赖(macOS/Windows 原生挂载)、权限直通 Linux 用户体系、日志可审计、部署轻量免容器。典型应用场景包括老旧工控系统文件网关、教育实验室共享区、开发测试日志分发等受限环境。本文聚

Eric.Net的专栏 365

android 编译 oserror,Android-4.4.2 编译出错 OSError: [Errno 2] No such file or directory

在Ubuntu14.04下编译sama5d44 Android-4.4.2 版本时出错:File "scripts/make_css_property_names.py", line 233, in generate_implementationgperf = subprocess.Popen(gperf_args, stdin=subprocess.PIPE, stdout=subprocess...

weixin_42514752的博客 373

Ubuntu 20.04 + Nginx + Let‘s Encrypt HTTPS 配置实战指南

HTTPS 是现代 Web 服务的基础安全能力,其核心依赖 TLS 协议握手、SSL 证书验证与 Web 服务器加密配置三者协同。Let's Encrypt 作为主流免费 CA,通过 ACME 协议实现自动化证书签发,但实际落地需深度适配操作系统底层(如 Ubuntu 20.04 的 OpenSSL 1.1.1f)、Web 服务器(Nginx)及权限模型。配置失效常源于证书链缺失、协议/套件不兼容、防火墙拦截或私钥权限错误,而非证书本身。本文聚焦 Nginx 在 Ubuntu 20.04 环境下的生产级 H

weixin_30527323的博客 412

ubuntu 18.04编译android 源码及问题排错

/bin/bash: m4: command not found [ 12% 12196/98404] Check module type: out/host/linux-x86/obj/STATIC_LIBRARIES/libsepol_intermediates/link_type [ 12% 12197/98404] Export includes file: -- out/host/linux-x86/obj/EXECUTABLES/sepolicy-analyze_intermediates/e.

蚁人日记 1万+

Ubuntu 14.04下HAProxy SSL终止实战:兼容性优先的HTTPS卸载方案

SSL终止(SSL Termination)是将TLS解密卸载到反向代理层的关键技术,其核心原理在于代理服务器代为完成TLS握手与加解密,后端以HTTP通信,显著降低应用层安全负担。在老旧系统如Ubuntu 14.04上,该技术的价值远超性能优化——它成为支撑遗留Java/PHP服务对外提供HTTPS的生存刚需。然而,OpenSSL 1.0.1f、HAProxy 1.4.x等陈旧工具链带来严峻兼容性挑战:PEM格式解析异常、ECDSA密钥不识别、TLS协议降级失效等。本文聚焦SSL Termination在

weixin_33675507的博客 345

ubuntu 12.10 上 android 编译环境搭建的深入解析

1. 安装所有的套件sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev:i386 g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i3862 . gc

编译Android 4.0时遇到的问题汇总

接下来,如果是32位系统的话,在终端中运行 $ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \ libx11-dev libreadline6-dev libg

flyingqr的专栏 2623

深入解析MATLAB四旋翼仿真案例asbQuadcopter的核心模块与优化技巧

本文深入解析了MATLAB/Simulink中的四旋翼无人机官方案例asbQuadcopter,详细拆解了其指令、传感器、控制器、本体与环境等核心模块的工作原理。重点探讨了经典的PID双环控制结构、传感器噪声模拟、模型替换方法以及系统化的PID参数调优技巧,旨在帮助用户从“开箱即用”过渡到深度定制与优化,构建更精准的仿真模型。

weixin_29171087的博客 361

Ubuntu16.04 Android4.4 编译配置

编译环境: linux : ubuntu 16.04 内存2G 处理器 2核 缓存5G 硬盘100G 虚拟机: VMware 12 Pro Android版本:Android4.4 说明: 1.需要内存要大于1G,我用1G内存编译提示内存分配失败。 2.在虚拟机上编译,需要增加缓存的大小,我配置的是5G 3.本文编译的不是Andro.........

Biao 1701

半导体设备上位机开发:我的经验与新人指导

半导体设备上位机开发是一项复杂而富有挑战性的工作,需要扎实的技术基础和丰富的经验。如果你对半导体设备上位机开发感兴趣,欢迎随时与我交流,我会尽力帮助你!

qq_43518667的博客 2727

使用ShaderGraph制作URP各向异性

URP上用shaderGraph实现各向异性效果,解决只能用shader的问题

dreamform的专栏 1098

Android4.4.2源码编译问题记录

prebuilts/tools/gcc-sdk/gcc: line 40: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc: No such file or directory 解决办法: sudo apt-get install lib32ncurse...

Jonhliu163的博客 548

华大HC32F460 ADC+DMA高效数据采集实战解析

本文深入解析了华大HC32F460微控制器中ADC与DMA协同工作的高效数据采集方案。通过实战代码演示,详细阐述了如何配置硬件触发、序列扫描及AOS事件联动,实现后台自动采集,从而解放CPU资源,提升系统实时性与可靠性,适用于传感器数据采集、音频处理等多种场景。

weixin_29189373的博客 177

Android 编译环境配置搭建(Ubuntu 14)及环境导致编译错误

转载来自:http://www.linuxidc.com/Linux/2013-11/92232p2.htm.Android 编译报错(环境问题)QA:Question:g++: g++: selected multilib '32' not installedselected multilib '32' not installedmake: *** [out/host/li...

weixin_33705053的博客 94

小程序设计中的区块链应用:数字藏品实现

本文旨在为开发者提供在小程序中实现区块链数字藏品功能的完整技术方案。区块链与数字藏品的基础概念智能合约的设计与实现小程序与区块链的交互方式数字藏品的完整实现流程文章将从基础概念入手,逐步深入到技术实现层面,最后通过完整项目案例展示数字藏品在小程序中的实现方式。每个技术点都会配合代码示例和架构图进行说明。区块链:一种分布式数据库技术,通过加密算法保证数据不可篡改数字藏品:基于区块链技术的数字资产,具有唯一性和可验证性NFT。

小程序开发 1350

【四足机器人项目实战】四足机器人弹簧倒立摆(SLIP)动力学模型

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言1.动力学建模构型方法2.四足机器人动力学模型(1)多体动力学模型【针对躯干+脚建模】方法一:VMC(VirtualModelController)模型方法二:SLIP模型(2)浮基单体动力学模型【针对躯干建模】【用于MPC】 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对四足机器人动力学模型-VMC、SLIP和浮动机体模型做个简

qq_35635374的博客 7311

Linux/安卓驱动编译常见错误与解决方法

本贴对Linux和安卓系统驱动编译中常见的错误进行记录,并补充相应解决方法,若读者对照此方法无法解决,欢迎补充讨论。 错误一:error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time] 表示当前编译环境会进行编译的 DATE 以及 TIME 进行检查,若有Warnings警告也作为错误处理上报。参考解决方法: 1. 驱动对应的Makefile文件中增加一行:CFLAGS += -Wno-error=date

PC小能手的博客 5034

财务数字化——解读美的战略规划之财务组织体系建设【附全文阅读】

本文提出适用于集团企业的财务管控方案,面向财务负责人、HR及战略规划人员。方案整合四种管控模式,结合500强案例,构建"职能定位-架构设计-权责划分-人才发展"体系,涵盖财务五大模块。通过明确总部与事业部权责边界,提供组织架构等实操框架,旨在平衡财务管控与业务支持,提升效率与风控能力,满足集团财务体系规范化建设需求。

cdfunlove的博客 663

ubuntu编译安卓4.2

闲得蛋疼,开始折腾一下ubuntu 一: 15.04 下载地址: http://120.198.244.55:9999/old-releases.ubuntu.com/releases/15.04/ubuntu-15.04-desktop-amd64.iso 二:分区 /Home 150G 逻辑分区 Swap 2G 逻辑分区 / 4

Baijinwen的专栏 1069

86、高斯过程:学习、应用与自动相关性确定

本文介绍了高斯过程回归的基本原理及其在实际应用中的关键技术,重点探讨了通过最大化对数似然函数来学习模型超参数的方法,并详细阐述了自动相关性确定(ARD)技术如何用于评估输入变量的重要性。文章涵盖了从协方差函数定义、梯度计算到优化算法的应用流程,并通过流程图和表格形式总结了核心步骤与公式。此外,还讨论了贝叶斯处理方式及异方差问题的建模策略,展示了高斯过程在复杂数据建模中的灵活性与强大能力。

android的专栏 114

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Ubuntu 18.04 Apache Basic Auth 密码认证快速配置指南

HTTP Basic 认证是一种工作在协议层的轻量级访问控制机制,基于 RFC 7617 标准,通过 WWW-Authenticate 响应头与 Authorization 请求头实现无状态凭证校验。其核心原理是 Apache 模块(mod_auth_basic/mod_authn_file)直接读取本地哈希密码文件,不依赖应用代码、数据库或会话管理,具备毫秒级响应与零侵入特性。技术价值在于以最小运维成本构建第一道网络边界防护,适用于 Jenkins、Grafana、备份目录等后台静态资源保护场景。本文聚焦

weixin_33850015的博客 361

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Ubuntu 18.04 + Caddy 零配置 HTTPS 部署实战

HTTPS 是现代 Web 服务的安全基石,其核心在于 TLS 协议实现、证书生命周期管理与自动化运维能力。Caddy 作为首个将 HTTPS 默认化、自动化、零配置化的生产级反向代理,依托内置 ACME 客户端与 Go 原生 crypto/tls 实现,彻底解耦系统 OpenSSL 依赖,在 Ubuntu 18.04 等 LTS 环境中稳定支持 TLS 1.3、HTTP/2 与自动续期。它不替代 Nginx,而是重构部署范式——将证书申请、HSTS 启用、安全头注入等原本需 DevOps 手动编排的任务,

weixin_34234721的博客 393

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Jenkins反向代理配置:Nginx+SSL在Ubuntu 18.04上的生产级部署

反向代理是现代Web应用实现HTTPS卸载、安全加固与架构解耦的核心技术。其原理在于将SSL终止、请求路由、协议升级(如WebSocket)等网络层能力从应用服务器剥离,交由专用代理服务器统一处理,从而提升安全性、可维护性与性能弹性。该方案的技术价值在于规避Java Keystore管理复杂性、支持自动证书续期、保障CI/CD链路全程加密,并兼容GitHub OAuth、GitLab CI等强制HTTPS回调的第三方集成。典型应用场景包括Jenkins、Artifactory、Grafana等DevOps工

weixin_30430169的博客 370
上一篇: bash :- : no such file or directory
下一篇: I,P,B帧和PTS,DTS的关系
simonjay2007
博客等级 码龄17年 104粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值