Execution failed for task ':compileDebugAidl'.

本文记录了解决Android开发过程中遇到的AIDL错误的方法。作者在升级Ubuntu系统后遇到了项目构建失败的问题,通过逐步排查并最终安装lib32gcc1解决了缺少libgcc_s.so.1共享库引发的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天终于升级了下Ubuntu系统到16.04LTS,之前是12.04LTS(导致内网一些同事开发的网址无法打开,以及其他工具软件无法安装)。

安装完android开发工具,运行之前的project,出现如下的错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileDebugAidl'.
> java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing '/opt_dev/android-sdk-linux_new/build-tools/23.0.3/aidl' with arguments {-p/opt_dev/android-sdk-linux_new/platforms/android-26/framework.aidl -o/home/dream/workspace/NewUserHomePage/build/generated/source/aidl/debug}

* Try:

google了下,网上的错误跟这个还不一样都是missing aidl 替换或者重新安装build tools版本即可,在stackoverflow上有个人跟我一样的问题,但是没有人回复。

我以为是我的sdk的问题,这个sdk来自之前的系统安装的,所以重新下了个sdk,还是出现这样的错误。

接着怀疑是不是android studio/gradle的问题,都重新部署了,还是有问题。

后来,在android studio 中点开Gradle console,才终于找到问题所在:

:compileDebugAidl
/opt_dev/android-sdk-linux_new/build-tools/23.0.3/aidl: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory

/opt_dev/android-sdk-linux_new/build-tools/23.0.3/aidl: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory


 FAILED

/opt_dev/android-sdk-linux_new/build-tools/23.0.3/aidl: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory

/opt_dev/android-sdk-linux_new/build-tools/23.0.3/aidl: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory

直觉是,这个aidl共享库引用了32位的libgcc_s.so,但是系统里面没有这个,所以运行如下的命令:

sudo apt-get install lib32gcc1

重新build,OK了

奇怪的是,我之前安装过32位的兼容so了啊,可能不全吧

android sdk的很多so或者工具都是基于32位系统开发的,而Ubuntu 16.04 是64位系统(可以运行 uname -a 来查看,有x86_64的就是了),所以需要安装一些32位的so

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值