android 源码编译

今天终于下载android 源码成功,现在记录下编译方法,以备后续之需
    1.更新配置jdk

        sudo apt-get update:更新软件
        sudo apt-get install openjdk-7-jdk:更新jdk

2.设置java版本

        $ sudo update-alternatives --config java
        $ sudo update-alternatives --config javac

提示说只有一个版本,不需要进行设置

3.执行命令

        sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip

遇到如下错误提示

下列软件包有未满足的依赖关系:
        g++-multilib : 依赖: cpp (>= 4:4.8.2-1ubuntu6) 但是它将不会被安装
        依赖: gcc-multilib (>= 4:4.8.2-1ubuntu6) 但是它将不会被安装
        依赖: g++ (>= 4:4.8.2-1ubuntu6) 但是它将不会被安装
        依赖: g++-4.8-multilib (>= 4.8.2-5~) 但是它将不会被安装
        E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

进行如下的方法解决此问题

        sudo apt-get install g++-multilib(ok)
        sudo apt-get install  bison git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip(ok)

4.更新gcc,ok

sudo apt-get install gcc 

5.在.bashrc中添加如下内容

 export USE_CCACHE=1

6.运行如下命令

prebuilts/misc/linux-x86/ccache/ccache -M 50G

这个命令看起来像是设置缓存区域大小的.

7.设置环境

source build/envsetup.sh

8.选择target

 lunch

这个应该是选择编译的模式的,如root还是eng
        这个我选择的是一

9.进行编译

 make -j4

编译报错

prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/arm-linux-androideabi-strip:out/target/product/generic/symbols/system/lib/libwebviewchromium.so: File format not recognized

网上查找对策
    似乎网上说的是跟一个swap有关,进行如下设置

    1)sudo dd if=/dev/zero of=/opt/swap1 bs=1024 count=1024000
    2) sudo mkswap /opt/swap1
    3) sudo swapon /opt/swap1
    4) sudo vim /etc/fstab

增加如下内容

  /opt/swap1 swap swap defaults 0 0

用同样的方法,增加swap2
    进行了上面的设置,方法编译结果还是错误的。继续查找方法

原来,只需要把源码的out目录删除,然后重新编译就行了
    如果你想要结束swap分区,然后重新设置分区大小,可以使用如下命令

 sudo /sbin/swapoff /opt/swap2 
时间: 2024-10-18 20:10:41

android 源码编译的相关文章

android 源码编译及其运行模拟器相关问题记录

最近一直在看android源码相关的文档,包括编译源码,还有framework层的代码,本人很懒,一直没有写博客,今天想自己在编译一下源码,并且运行在模拟器中. 源码的版本不同,需要的jdk可能也有所不同,一切都参照官方给与的文档,下载源码的方法也参考官方文档. 注意点:1.环境变量要设置正确,不要出现错误 2.基本没有一次就能顺利编译源码的,多少都会出错,根据提示修改错误,安装一些包和库就可以搞定,具体问题具体查找,我遇到的问题也可多了,都是按官方文档解决的.有些问题可能和你的编译环境相关,这

基于Hi3716cV200的Android源码编译问题---fastboot-burn.bin

在编译源码时有时会报与"fastboot-burn.bin"有关的错误. 解决办法如下: 进入device/hisilicon/bigfish/sdk目录,一次执行 make hiboot_clean; make hiboot_install. 如果在这个过程中报弄cfg.mak文件的错误,解决办法之一是在Android源码根目录进行一次完整编译,直到出错停止,此时会生成cfg.mak文件:解决方法之二是从sdk/configs拷贝单板配置文件到sdk目录并改名为cfg.mak. ==

有关android源码编译的几个问题

项目用到编译环境,与源码有些差异不能照搬,关键是连源码都没编译过,下面基本上是行网上照的各种自学成才的分享,病急乱投医了,都记在下面作为参照吧. 1.验证是否编译正确,在终端执行 emulator & (注:可进入${ANDROID_PRODUCT_OUT}目录,后执行 emulator -image system.img -data userdata.img -ramdisk ramdisk.img) 模拟器能正常启动则表明编译成功 Android源码编译调试详解  Android2.2的,有

基于海思Hi3716cv200的Android源码编译及烧写

1.先说说硬件配置,我最开始是在Win7(I7 4770,8G RAM,2T硬盘)里装ubuntu10.10 64位系统(4G RAM,200G 硬盘)进行源码编译,大概花了3个多小时.而且还多次出现outofmemoryerror 错误.最后将硬件升级为I7 4770.16G内存.2T硬盘,不装虚拟机,直接跑Ubuntu 10.10系统,Swap分区为16G,编译一次大概花了40分钟,没有报任何错误. 所以不推荐在虚拟机里面跑. 2.根据官方文档配置编译环境: 官方文档说的是在"发布包/Sof

Android源码编译jar包BUILD_JAVA_LIBRARY 与BUILD_STATIC_JAVA_LIBRARY的区别(二)

上文简单介绍了BUILD_JAVA_LIBRARY 与BUILD_STATIC_JAVA_LIBRARY编译出来jar包的区别, 那么你如果拿到了一个内容是dex格式的jar包,而你又偏偏需要这个jar包导入Eclipse来做开发, 手头偏偏又没有这个jar包的源码,或者有源码,但是没有Android源码编译(mm)的环境,怎么办? 这个时候谷歌安卓反编译工具(dex2jar, 本人实在太懒,就不提供下载链接了)就有用处了, 将jar包里面的dex文件(classes.dex)用此神器转换成一个

Android源码编译

Android源码编译学习小结 内容 系统源码编译 笔者之前在学习安卓系统源码的编译,为了能够印象深刻,粗略的总结了以下内容,希望对我一样的初学者有一些帮助. 系统编译的初始化指令 对android编译环境进行初始化很简单,分为两步.第一步打开终端输入source build/envseup.sh加载所需的文件. $ source build/envseup.sh including device/asusource build/envseup.shs/grouper/vendorsetup.s

Android源码编译make的错误处理

android源码下载:官方下载 或参考android源码下载方式 Android编译版本: PLATFORM_VERSION=4.0.1(最新Android 4.0.1) OS 操作系统平台: Linux yanggang 2.6.35-30-generic #61-Ubuntu SMP Tue Oct 11 15:29:15 UTC 2011 i686 GNU/Linux(Ubuntu10.10  32bit) 首先,我们先安装一些常用的工具curl: sudo  apt-get  inst

Android源码编译之Nexus5真机编译

1.   前言 在Android安全的研究工作中,我们时常要对Android进行改进并对其进行源码编译,由于目前几乎所有的手机厂商均对其底层驱动实行封闭政策,导致我们在完成Android编译后无法将我们编译好的系统刷到普通的Android手机上,因此在一般的科学实验中我们更多的是将修改好的android源码编译成模拟器,以模拟器的形式证明实验的成功与否. 事实上,Android作为一款开放源代码的移动设备操作系统,Google最初就考虑到了真机编译的问题,而关于这个问题的解决方案体现在每次Goo

android源码编译完成之后

android源码编译完成之后,在根目录下会有一个out目录生成,如果我们想要运行虚拟机的话,需要配置一下环境变量. 首先我们使用下面的命令打开配置环境变量的文件: gedit ~./bashrc 在这个文件的最后,添加如下代码: export ANDROID_PRODUCT_OUT=~/android/out/target/product/generic ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin export PATH=$

基于海思Hi3716cv200的Android源码编译及烧写之内置存储卡

问题:把编译好的镜像烧写到小板上后,发现设置--->存储 里只显示0.98G的系统空间,而且在设置--->应用 点开后会崩溃.崩溃时的日志信息如下: time( 3407): at com.android.settings.applications.ManageApplications$TabInfo.updateStorageUsage(ManageApplications.java:333) E/AndroidRuntime( 3407): at com.android.settings.