1.下载sdk到服务器
1.1 浏览器下载sdk 上传
https://developer.android.com/studio/index.html
#选择
android-sdk_r24.4.1-linux.tgz
1.2 解压
tar xf wget android-sdk_r24.4.1-linux.tgz -C /server/android
1.3 配置环境变量ANDROID
#android
export ANDROID_HOME=/server/android
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
1.4 安装sdk
安装全部
android update sdk --no-ui
选择安装
android list sdk --all
查看版本列表
1- Android SDK Tools, revision 25.2.5
2- Android SDK Platform-tools, revision 28.0.2
3- Android SDK Build-tools, revision 29 rc1
4- Android SDK Build-tools, revision 28.0.3
5- Android SDK Build-tools, revision 28.0.2
6- Android SDK Build-tools, revision 28.0.1
7- Android SDK Build-tools, revision 28
8- Android SDK Build-tools, revision 27.0.3
9- Android SDK Build-tools, revision 27.0.2
10- Android SDK Build-tools, revision 27.0.1
11- Android SDK Build-tools, revision 27
12- Android SDK Build-tools, revision 26.0.3
13- Android SDK Build-tools, revision 26.0.2
14- Android SDK Build-tools, revision 26.0.1
15- Android SDK Build-tools, revision 26
16- Android SDK Build-tools, revision 25.0.3
17- Android SDK Build-tools, revision 25.0.2
18- Android SDK Build-tools, revision 25.0.1
19- Android SDK Build-tools, revision 25
20- Android SDK Build-tools, revision 24.0.3
21- Android SDK Build-tools, revision 24.0.2
22- Android SDK Build-tools, revision 24.0.1
23- Android SDK Build-tools, revision 24
24- Android SDK Build-tools, revision 23.0.3
25- Android SDK Build-tools, revision 23.0.2
26- Android SDK Build-tools, revision 23.0.1
27- Android SDK Build-tools, revision 23 (Obsolete)
28- Android SDK Build-tools, revision 22.0.1
29- Android SDK Build-tools, revision 22 (Obsolete)
30- Android SDK Build-tools, revision 21.1.2
31- Android SDK Build-tools, revision 21.1.1 (Obsolete)
32- Android SDK Build-tools, revision 21.1 (Obsolete)
33- Android SDK Build-tools, revision 21.0.2 (Obsolete)
34- Android SDK Build-tools, revision 21.0.1 (Obsolete)
35- Android SDK Build-tools, revision 21 (Obsolete)
36- Android SDK Build-tools, revision 20
37- Android SDK Build-tools, revision 19.1
38- Android SDK Build-tools, revision 19.0.3 (Obsolete)
39- Android SDK Build-tools, revision 19.0.2 (Obsolete)
40- Android SDK Build-tools, revision 19.0.1 (Obsolete)
41- Android SDK Build-tools, revision 19 (Obsolete)
42- Android SDK Build-tools, revision 18.1.1 (Obsolete)
43- Android SDK Build-tools, revision 18.1 (Obsolete)
44- Android SDK Build-tools, revision 18.0.1 (Obsolete)
45- Android SDK Build-tools, revision 17 (Obsolete)
...
选择安装
./android update sdk -u --all --filter 28,21,22
查看自己安装的版本
[root@cash /server/android/build-tools]# ll
total 12
drwxr-xr-x 4 root root 4096 Mar 14 15:49 22.0.1
drwxr-xr-x 5 root root 4096 Mar 14 15:35 24.0.1
drwxr-xr-x 5 root root 4096 Mar 14 15:35 24.0.2
注:
修改android代码中build.gradle
5. 需要jdk环境
参考:
https://blog.youkuaiyun.com/wanchaopeng/article/details/83538629
2.1 报错
Cannot run program “/server/android/build-tools/22.0.1/aapt”: error=2, No such file or directory
解决方案1:可能是没有安装该版本的build tools
解决方案2:缺少C++.库,执行以下cmd
yum install libstdc++.i686
2.2 报错
/server/android/build-tools/22.0.1/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
解决方法
yum install glibc*.i686
yum install zlib*.i686
2.3 关于ConstraintLayout的问题
You have not accepted the license agreements of the following SDK components:
[ConstraintLayout for Android 1.0.2, Solver for ConstraintLayout 1.0.2].
解决
# 命令1
echo y | $ANDROID_HOME/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2"
# 命令2
echo y | $ANDROID_HOME/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2"
2.4 解决java.io.IOException: error=2
[root@cash ~]# uname -a
Linux cash-register 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
参考链接:https://lists.centos.org/pipermail/centos/2012-January/122428.html
参考:https://blog.youkuaiyun.com/ouyang_peng/article/details/75146841
由于是64bit的系统,而Android sdk只有32bit的程序,需要安装ia32-libs,才能使用。
yum install glibc.i686
2.5 解决finished with non-zero exit value 127
sudo yum install libstdc++*
sudo yum install zlib*
sudo yum install libncurses*
2.5.1aapt” finished with non-zero exit value 127,原因 error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
processDebugResources/server/android/build-tools/22.0.1/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
FAILED
FAILURE: Build failed with an exception.
参考:https://stackoverflow.com/questions/21256866/libz-so-1-cannot-open-shared-object-file
yum install zlib.i686
2.5.2解决问题 aapt” finished with non-zero exit value 127,原因 error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
processDebugResources/usr/local/share/adt-bundle-linux-x86_64-20140702/sdk/build-tools/22.0.1/aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
参考:https://blog.youkuaiyun.com/ouyang_peng/article/details/75146841
sudo yum install libstdc++.i686
sudo yum install libstdc++-devel.i686
小结:
这次Jenkins编译不过的原因,主要还是因为我的Center OS 服务器是64位的系统,而Android SDK只有32位的程序,需要安装32位相关的lib才能使用。然后一个一个lib的添加,直到能够成功编译为止。在编译失败的过程中,要认真分析到底哪里失败了,有时候Jenkins失败的表现是一样的,但是实际上失败的原因是不同的。
比如上面两次编译一直报Caused by: org.gradle.process.internal.ExecException: Process 'command '/server/android/build-tools/22.0.1/aapt'' finished with non-zero exit value 127,但是两次失败的原因不同,
一次是因为error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directorylibstdc++.so.6库找不到,
一次是因为error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directorylibz.so.1库找不到。