Linux平台编译Android报错aapt2 /lib64/libc.so.6 version ‘GLIBC_2.14’ not found

问题描述

最近在搭建基于Jenkins的Android apk持续集成编译环境,部署至Centos 6.9服务器上时,使用Gradle指令执行打包APK报错:

aapt2: /lib64/libc.so.6: version 'GLIBC_2.14' not found (required by aapt2)

从错误信息可以看出,程序没有找到GLIBC_2.14这个版本库,而Centos 6.9默认的glibc版本最高为2.12,所以需要更新系统glibc库。

glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装Linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。

很多Linux的基本命令,比如cp、rm、ll、ln等,都得依赖于glibc,如果操作错误或者升级失败会导致系统命令不能使用,严重的造成系统退出后无法重新进入,所以操作时候需要慎重。

解决方法

查看系统版本和glibc库版本

# cat /etc/redhat-release 
CentOS release 6.9 (Final)

# strings /lib64/libc.so.6 |grep GLIBC_ 
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE

由上面的信息可以看出系统是CentOS 6.9,最高支持glibc的版本为2.12,而Android资源文件编译工具aapt2需要2.14版本,所以需要升级。

下载glibc并编译升级

官方下载:https://ftp.gnu.org/gnu/glibc/

为谨慎起见,本文下载编译glibc-2.14,而非最新版glibc-2.28

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz 
wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz 
tar -xvf  glibc-2.14.tar.gz 
tar -xvf  glibc-ports-2.14.tar.gz
mv glibc-ports-2.14 glibc-2.14/ports
mkdir glibc-2.14/build
cd glibc-2.14/build 
../configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make
make install

以上完成不报错的话,查看库文件,发现/lib64/libc.so.6软链接已经指向2.14版本

# ll /lib64/libc.so.6 
/lib64/libc.so.6 -> /lib64/libc-2.14.so

再次查看glibc支持的版本

# strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_PRIVATE

可以看到glibc支持的版本已经到2.14,再次执行Gradle编译指令即不会报错。

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/19/compiling-android-on-linux-platform-with-error-aapt2-lib64-libc-so-6-version-glibc-2-14-not-found/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Linux平台编译Android报错aapt2 /lib64/libc.so.6 version ‘GLIBC_2.14’ not found
问题描述 最近在搭建基于Jenkins的Android apk持续集成编译环境,部署至Centos 6.9服务器上时,使用Gradle指令执行打包APK报错: aapt2: /lib64/libc.so.6: ve……
<<上一篇
下一篇>>
文章目录
关闭
目 录