一、“You asked for an OpenJDK 7 build but your version is java version "1.7.0_72" Java(TM) SE”
解决方法:
1、下载OpenJDK7:https://jdk.java.net/java-se-ri/7

2、sudo tar zxvf openjdk-7u75-b13-linux-x64-18_dec_2014.tar.gz -C /opt
3、# 修改profile文件
sudo gedit /etc/profile
# 加入下面的配置
export JAVA_HOME=/opt/java-se-7u75-ri
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 更新profile文件
source /etc/profile
4、java -version查看版本号

5、修改envsetup.sh文件
a、sudo gedit build/envsetup.sh
b、刚才解压的jdk路径粘贴到下方的 JAVA_HOME 变量中

6、修改main.mk文件
sudo gedit build/core/main.mk
# 注释掉第 171 行的终止命令 :
# $(error stop)

二、“make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] 已放弃 (core dumped)”
解决方法:
export LC_ALL=C
三、“make: *** [out/host/linux-x86/obj32/lib/libc++.so] Error 1”
解决方法:
1、art/build/Android.common_build.mk中把true改为false
# Host.
ART_HOST_CLANG := false
ifneq ($(WITHOUT_HOST_CLANG),false) #ture--->false
# By default, host builds use clang for better warnings.
ART_HOST_CLANG := ture
endif
2、 执行命令,更改链接指向
ln -sf /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld
四、 “make: *** [out/host/linux-x86/obj32/lib/libcompiler_rt.so] Error 1”
解决方法:
在build/core/clang/Host_x86_common.mk 的第7 - 11行左右位置
ifeq ($(HOST_OS),linux)
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_ASFLAGS := \
--gcc-toolchain=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG) \
--sysroot=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/sysroot \
-B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin \
-no-integrated-as
添加 -B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin \ 这行
五、“make: *** [out/host/linux-x86/obj32/lib/libnativehelper.so] Error 1”
解决方法:
source_android代表你的android源码根目录
1、cd <source_android>/art/build/
vim Android.common_build.mk //修改第119行
修改前:
# Host.
ART_HOST_CLANG := false
ifneq ($(WITHOUT_HOST_CLANG),true)
# By default, host builds use clang for better warnings.
ART_HOST_CLANG := true
endif
修改后:
# Host.
ART_HOST_CLANG := false
ifneq ($(WITHOUT_HOST_CLANG),false)
# By default, host builds use clang for better warnings.
ART_HOST_CLANG := true
endif
2、经过第一次修改之后发现编译还是报同样的错误,执行下面:
cp /usr/bin/ld.gold <source_android>/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld
3、修改过上述代码后,最好执行一次make update-api,再make。

本文详细介绍了在Ubuntu18上编译Android 5.1源码时遇到的四个错误及对应的解决步骤。包括OpenJDK版本不匹配、aidl编译失败、libcompiler_rt.so和libnativehelper.so编译错误,每个问题都给出了具体的解决方法,如修改环境变量、替换链接器和调整Android.mk文件。
329

被折叠的 条评论
为什么被折叠?



