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 

 



posted @ 2016-03-22 13:22  小白屋  阅读(907)  评论(0编辑  收藏  举报