编译环境搭建源码修改部分模块编译源码编译及整个过程中的
各类问题
编译环境搭建
由于编译的是4.0.3的源码 必须使⽤1.6版本的JDK
jdk环境变量配置:
export JAVA_HOME=/home/vivien/Downloads/jdk1.6.0_45
export JRE_HOME=/home/vivien/Downloads/jdk1.6.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
把环境变量配置在/home/vivien/.bashrc⽂件中是最好的选择。
由于ubuntu中可能会有默认的jdk,如openjdk。假如有openjdk的话,所以,为了使默认使⽤的是我们安装
的jdk,还要进⾏如下⼯作。在终端充输⼊:
sudo update-alternatives --install /usr/bin/java java /home/vivien/Downloads/jdk1.6.0_45/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /home/vivien/Downloads/jdk1.6.0_45/bin/javac 300
sudo update-alternatives --install /usr/bin/javap javap /home/vivien/Downloads/jdk1.6.0_45/bin/javap 300
sudo update-alternatives --install /usr/bin/jar jar /home/vivien/Downloads/jdk1.6.0_45/bin/jar 300
然后执⾏source .bashrc使配置⽣效即可。
然后执⾏以下命令设置默认的java jdk
linux安装jdk环境变量sudo update-alternatives --config java
在终端下进⼊你的SourceCode⽬录执⾏:
sudo chmod a+x * -R
这样⼦都给⽂件都加上了可执⾏权限
最后进⾏编译就可以了
源码修改
.mk⽂件:
include $(CLEAR_VARS)
LOCAL_C_INCLUDES:= external/tinyalsa/include
LOCAL_SRC_FILES:= MyTiny.c
LOCAL_MODULE := MyTiny
LOCAL_SHARED_LIBRARIES:= libcutils libutils libtinyalsa
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)
部分模块编译
tinyalsa模块单独编译:
cd /home/vivien/Downloads/android-4.0.3_r1
. ./build/envsetup.sh
cd /home/vivien/Downloads/android-4.0.3_r1/external/tinyalsa
lunch
mm
整体源码编译
cd /home/vivien/Downloads/android-4.0.3_r1
. build/envsetup.sh
lunch
make
各类问题及解决⽅法
那如何让make重新编译源⽂件呢?
有时候,因为系统的不同,导致运⾏库版本不同,则需要重新编译源⽂件。⽅法如下:
>make clean(清除上次make命令所产⽣的object⽂件(后缀为“.o”的⽂件)及可执⾏⽂件。)
>ldconfig (该命令通常在系统启动时运⾏,确保动态链接库为系统所共享。当⽤户安装了⼀个新的动态链接库时,则需⼿⼯运⾏该命令。)
>make(执⾏makefile⽂件)
1.编译lunch时出现的错误,分析原因是:jdk tools.jar没有在环境变量中定义位置,jdk没有配置成功
/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: Perm
ission denied
/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: build/core/find-jdk-tools-jar.sh: Permission denied
build/core/config.mk:268: *** Error: could not find , please install JDK6, which you can download from java.sun. Stop.
** Don't have a product spec for: 'full_maguro'
** Do you have the right repo manifest?
2.源码编译make的错误与解决⽅法
/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 zlib1g-dev sudo apt-get install lib64z1-dev
刷机过程
命令⾏:
cd /home/vivien/Downloads/android-4.0.3_r1/out/host/linux-x86/bin
adb reboot revorvery
adb reboot bootloader
fastboot flashall -w
cd /home/vivien/Downloads/android-
4.0.3_r1/out/target/product/maguro/obj/EXECUTABLES/MyTiny_intermediates/LINKED
adb push MyTiny /data/local
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论