一、Android源码下载与编译

基于VMware 7.0 ubuntu10.0464位

1、Git工具。

若无则安装 ~$ sudo apt-get installgit-core gnupg

2、Java sdk 。

~$sudo add-apt-repository ppa:ferramroberto/java

~$sudo apt-get update ~$sudo apt-get install sun-java6-jre sun-java6-plugin ~$sudo apt-get install sun-java6-jdk 另:接受安装条件时,tab键切换焦点。 3、安装其他需要的命令 ~$sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
4、调试工具 ~ $sudo apt-get install valgrind
5、安装repo工具
修改/etc/hosts文件,在文件末尾加上(地址有可能会变,先ping一下再加)
74.125.237.1 dl-ssl.google.com
74.125.31.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173 cache.pack.google.com

安装repo:
~$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
~$ chmod a+x ~/bin/repo
另外一个地址 :
$ curl " http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo 修改文件.bashrc ~$ vi .bashrc
在最后一行加入export PATH=$PATH:~/bin
保存,执行~$./.bashrc 6、创建下载目录android并初始化repo ~$ mkdir android ~$ cd android/ 初始化
 ~/android$ repo init -u https://android.googlesource.com/platform/manifest
~/android$ repo init -u https://android.googlesource.com/platform/manifest -bandroid-2.3.1_r1 下载(慢慢等吧) ~/android$ repo sync
注意:最好是把自己创建的下载目录下面的.repo 里面manifest.xml属性fetch改为:fetch= "https://android.googlesource.com/"
7、编译(这里也慢慢等) ~/android$ make 注意: 出现错误,首先,全部赋予可执行权限
错误:find: `frameworks/base/frameworks/base/docs/html': No such file or directory
find: `out/target/common/docs/gen': No such file or directory
此错误忽略,不影响编译
错误:/bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: No such file or directory 解决方法:apt-get install lib32z1-dev

错误:/usr/include/gnu/stubs.h:7: fatal error: gnu/stubs-32.h: No such file or directory
解决方法:~/android$ sudo apt-get install libc6-dev-i386

错误:external/clearsilver/cgi/cgi.c:22: fatal error: zlib.h: No such file or directory

解决方法:~/android$sudo apt-get install zlib1g-dev


  错误:/usr/bin/ld: cannot find -lncurses

解决方法:sudo apt-get install lib32ncurses5-dev


错误:/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] Error 1

解决方法:~/android$sudo ln -s /usr/lib32/libstdc++.so.6 /usr/lib32/libstdc++.so

ubuntu 10.04,默认的gcc版本为4.4,gcc-4.4太严格,有可能要从gcc-4.4降到gcc- 4.3
1、安装gcc-4.3
$ sudo apt-get install gcc-4.3 g++-4.3
2、修gcc相关链接
$ cd /usr/bin
$sudo ln -snf gcc-4.3 gcc
$sudo ln -snf g++-4.3 g++
$sudo ln -snf cpp-4.3 cpp
3、64bit系统需装如下包
$ sudo apt-get install g++-multilib g++-4.3-multilib

中间或许还有其他各种错误,遇到了自己百度去。
编译成功会有如下输出 Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img Install system fs image: out/target/product/generic/system.img Target ram disk: out/target/product/generic/ramdisk.img Target userdata fs image: out/target/product/generic/userdata.img Installed file list: out/target/product/generic/installed-files.txt
8、运行 启动模拟器,运行$ emulator 错误:No command 'emulator' found, did you mean:
Command 'qemulator' from package 'qemulator' (universe)
emulator: command not found
解决方法:编辑/etc/environment 加入环境变量 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:usr/lib/jvm/java-6-sun-1.6.0.26/bin:/home/nanlus2/android/out/host/linux-x86/bin"
CLASSPATH="/usr/lib/jvm/java-6-sun-1.6.0.26/lib"
JAVA_HOME="usr/lib/jvm/java-6-sun-1.6.0.26"
ANDROID_PRODUCT_OUT="/home/nanlus2/android/out/target/product/generic"
注:/home/nanlus2/android为源码目录 保存,重启。运行$ emulator 错误:SDL init failure, reason is: No available video device
解决方法:$apt-get install ia32-libs lib32stdc++6
再次运行$ emulator 成功

二、编译自己的apk 1、编写完成工程。 2、编写Android.mk文件,放入工程目录下 LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := helloworld
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

3、编译 拷贝工程至packages/apps/下
~$ cp -ri helloworld ~/android/packages/apps/helloworld
进入目录 ~/...../helloworld$ mm 编译成功:out/target/product/product_name/system/app/helloworld.apk 4、运行 安装在机子上运行之。adb install xxx/helloworld.apk
在这里也可以一起打包, $make snod 然后,再运行,启动模拟器即可。

更多相关文章

  1. ionic 自动编译android的release版本
  2. 解决INSTALL_FAILED_INSUFFICIENT_STORAGE调试错误的解决
  3. Android(安卓)命令行手动编译打包详解
  4. android ndk编译getevent
  5. Android(安卓)Studio下“Error:Could not find com.android.tool
  6. 运行模拟器时 No such file or directory
  7. android studio运行应用报找不到资源问题
  8. Android学习笔记之mainfest文件中android属性
  9. Android全工程编译不过问题汇总

随机推荐

  1. 记录代码合并时产生的bug
  2. Android中一些错误
  3. 常用的android弹出对话框
  4. android之ListView与Adapter(结合JavaBea
  5. android日期控件显示
  6. android webview在弹出软键盘时,布局没有
  7. Android(安卓)md5加密
  8. android 录音 播放
  9. android解析xml的通用写法
  10. Android(安卓)DatePickerDialog存在执行