Ubuntu Linux14 64位下在Android studio下用gradle编译Andrid项目时发生libz.so.1共享库找不到的解决方法。
---恢复内容开始---
我在Ubuntu14 64为下安装了AS,但在用Gradle编译项目时总是报找不到 libz.so.1的错误。
error while loading shared librarieserror while loading shared libraries: : libz.so.1libz.so.1: : cannot open shared object filecannot open shared object file: : No such file or directoryNo such file or director
上面的就是所报的错误,表示这个共享库找不到了。
下面使用apt-file命令搜索这个文件,首先如果系统中没安装这个命令的要先安装:
sudo apt-get install apt-file
有可能会提示你更新
sudo apt-file update
使用命令搜索:
sudo apt-file search libz.so.1
我的系统所得到的结果:
lib32z1: /usr/lib32/libz.so.1
lib32z1: /usr/lib32/libz.so.1.2.8
libx32z1: /usr/libx32/libz.so.1
libx32z1: /usr/libx32/libz.so.1.2.8
zlib1g: /lib/x86_64-linux-gnu/libz.so.1
zlib1g: /lib/x86_64-linux-gnu/libz.so.1.2.8
开始的时候我进入了/usr/lib32,但没发现有libz.so.1这个文件,尽管查出来了,但就是没看到在那。
至于/usr/libx32,我TMD连这个目录都打不开,提示不存在,好吧,linux新手,很多都搞不懂.
然后我进入/lib/x86_64-linux-gnu/目录下,发现libz.so.1只不过是一个链接文件,链接的是libz.so.1.2.8,好吧,不管那么多,
将libz.so.1.2.8复制到SDK中的build-tools/lib/ 目录下,当然,名称最好改为libz.so.1最好。(其实也可以用软链接,不过我在网上看到有的网友说软链接有问题,嘛,新手还是保险低点,先把问题解决在说其他的。)
然后再用as编译 ,在日志中还是有错误,不过错误变成了无法使用当前64位的共享库,嘛,好像是因为SDK只有32位的,所以64位的共享库无法使用,好吧,看来只有使用32位的了。
使用命令:
sudo apt-get install lib32z1
一定要sudo才行哦。然后在到/usr/lib32目录下去就看到有了libz.so.1.2.8这个文件,好了,将这个文件复制或链接到build-tools/lib/ 下就可以了。
花了我一天,其实也不是什么复杂的东东,只能说,百度真的很烂。
参考:http://www.th7.cn/system/lin/201503/95956.shtml
郁闷,今天打开Android Studio 1.3时发现无法新建项目了,每次在输入项目名的那个页面点击Next后就没反应了,软件也被卡死了,然后呢,我就把sdk下的的/lib/libz.so.1链接删除了,把现有软件删除后重新从zip文件中解压出来后重新打开,又可以运行了,而且就是没有引入libz.so.1也可以编译Android项目,不知道怎么回事。
怀疑:
1,SDK终于下完整了。(不过我觉得不太可能,好像也没下什么特别的文件啊!)
2,Ubuntu更新了。我的Ubuntu是64位的,装的是gnome3桌面系统,我发觉我的系统启动画面变了,原来启动时是直接从开始操作系统选择窗口跳至用户登录窗口,然后输入用户名密码就可登录,现在会在之间插入两屏字符刷一下屏,搞不懂,而且我感觉第一次登录系统后以图形化的方式启动软件好慢,以前就没这中感觉。