前提

最近服务器配置jenkins 安卓自动打包APK,需要安卓环境,网上介绍挺多实际遇到一些问题,解决方法思路差不多,都说有坑但是没有细节

步骤

1.首先下载linux安装压缩包

wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz

tar xvzf android-sdk_r24.4.1-linux.tgz

解压后有有一个android-sdk-linux目录内容如下,这是不完整的,tools目录下是缺少东西的

android sdk工具刷机 android sdk tool_android

2.补全tools目录的内容 解压,文件目录就一个tools

wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip

unzip sdk-tools-linux-4333796.zip.zip

android sdk工具刷机 android sdk tool_Android_02

3.拷贝tools内容到第一步sdk下tools目录

cp -r tools/ /android/android-sdk-linux/

android sdk工具刷机 android sdk tool_linux_03

4.设置环境变量ANDROID_HOME

这里主要通过修改两种文件实现/etc/profile或者~/.bashrc ,通过vi编辑添加环境变量,source 修改的文件就行加载永久化【重启依然有效】

在文件末尾追加
vi /etc/profile
export ANDROID_HOME=/data/android-sdk-linux
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH


ESC  #退出编辑
:wq  #保存
source /etc/profile #环境变量生效


#一版系统是自带java环境的 当然有可以自己从oracle官网下载配置环境变量,思路一致,附JDK环境变量配置如下:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_60/
export JRE_HOME=/usr/lib/jvm/jdk1.8.0_60/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

5.验证android是否按照成功在命令行 输入android,出现如下即成功

android sdk工具刷机 android sdk tool_linux_04

安装platform和build-tools

1.android list sdk --all
列出所有的 sdk 资源包括 Sdk buildTools,SDK platform 等等
选中所需呀资源的序号,比如3 是 buildtoolsVersion 28.0.3,47是 platform 8.1.0

android update sdk -u -a -t 3,47(需要资源的序号)... 下载

或者执行命令

#sdkmanager是安卓sdk环境tools/bin下,所以要去这个目录
 ./sdkmanager --install “platforms;android-28”


#因为配置了环境变量也可以
 $ANDROID_HOME/tools/bin/sdkmanager --install “platforms;android-28”



#可以通过sdkmanager --install命令来进行packages组件的安装
sdkmanager --install “platforms;android-26”
sdkmanager --install “build-tools;25.0.3”
sdkmanager --install “extras;google;m2repository”
sdkmanager --install “extras;android;m2repository”

#sdkmanager --help 帮助

#配置网络连接
#Force all connections to use http rather than https.
sdkmanager --update --no_https

#sdk
sdkmanager --list

#报错 Error: Unknown argument --licenses
#该问题是sdkmanager 版本较低,更新sdkmanager :

sdkmanager --update

注意: 目前一般的android project 都会自带 wrapper 目录,里面带有gradle,项目根目录还有脚本,所以一般运行的时候不需要去下载gradle。android studio 配置gradle 插件即可。如果项目中没有gradle,也没有as 则需要下载gradle。步骤如下:

  • 下载gradle wget
  • 解压 unzip gradle-2.12-bin.zip
  • 配置环境变量 GRADLE_HOME=PATH:$GRADLE_HOME/bin
  •  source /etc/profile 5. 输入gradle 检测是否安装成功

 

2.授权执行sdkmanager --licenses 通过【推荐】

安装完对应的版本需要进行授权,否则就会出现如下情况(jenkins打包)

android sdk工具刷机 android sdk tool_Android_05

 

| sdkmanager --licenses


创建一个就可以,在执行sdkmanager --update,是个警告没什么影响

 

另一种通android update解决

android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository

问题

1.在./gradlew assembleRelease 编译到时候,出现

You have not accepted the license agreements of the following SDK components: [Android SDK Build-Tools 24, Android SDK Platform 24]. Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager. Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.html

这是因为缺少组件导致的,这里是缺少 platform android-28。该安装安装

2. ./gradlew: Permission denied

没有权限管理员授权即可chmod +x ./gradlew

附:安卓版本表

使用sdkmanager --list命令显示所有已经安装的和未安装的packages,如下:

Installed packages:

Path

Version

Description

Location

build-tools;24.0.3

24.0.3

Android SDK Build-Tools 24.0.3

build-tools/24.0.3/

build-tools;25.0.3

25.0.3

Android SDK Build-Tools 25.0.3

build-tools/25.0.3/

emulator

26.1.3

Android Emulator

emulator/

extras;android;m2repository

47.0.0

Android Support Repository

extras/android/m2repository/

extras;google;m2repository

57

Google Repository

extras/google/m2repository/

extras;m2reposi…ut-solver;1.0.2

1

Solver for ConstraintLayout 1.0.2

extras/m2reposi…t-solver/1.0.2/

extras;m2reposi…nt-layout;1.0.2

1

ConstraintLayout for Android 1…

extras/m2reposi…t-layout/1.0.2/

patcher;v4

1

SDK Patch Applier v4

patcher/v4/

platform-tools

26.0.0

Android SDK Platform-Tools 26

platform-tools/

platforms;android-24

2

Android SDK Platform 24

platforms/android-24/

platforms;android-25

3

Android SDK Platform 25

platforms/android-25/

tools

26.0.2

Android SDK Tools

tools/

Available Packages:

Path

Version

Description

add-ons;addon-g…_apis-google-15

3

Google APIs

add-ons;addon-g…_apis-google-16

4

Google APIs

add-ons;addon-g…_apis-google-17

4

Google APIs

add-ons;addon-g…_apis-google-18

4

Google APIs

add-ons;addon-g…_apis-google-19

20

Google APIs

add-ons;addon-g…_apis-google-21

1

Google APIs

add-ons;addon-g…_apis-google-22

1

Google APIs

add-ons;addon-g…_apis-google-23

1

Google APIs

add-ons;addon-g…_apis-google-24

1

Google APIs

add-ons;addon-g…e_gdk-google-19

11

Glass Development Kit Preview

build-tools;19.1.0

19.1.0

Android SDK Build-Tools 19.1

build-tools;20.0.0

20.0.0

Android SDK Build-Tools 20

build-tools;21.1.2

21.1.2

Android SDK Build-Tools 21.1.2

build-tools;22.0.1

22.0.1

Android SDK Build-Tools 22.0.1

build-tools;23.0.1

23.0.1

Android SDK Build-Tools 23.0.1

build-tools;23.0.2

23.0.2

Android SDK Build-Tools 23.0.2

build-tools;23.0.3

23.0.3

Android SDK Build-Tools 23.0.3

build-tools;24.0.0

24.0.0

Android SDK Build-Tools 24

build-tools;24.0.1

24.0.1

Android SDK Build-Tools 24.0.1

build-tools;24.0.2

24.0.2

Android SDK Build-Tools 24.0.2

build-tools;24.0.3

24.0.3

Android SDK Build-Tools 24.0.3

build-tools;25.0.0

25.0.0

Android SDK Build-Tools 25

build-tools;25.0.1

25.0.1

Android SDK Build-Tools 25.0.1

build-tools;25.0.2

25.0.2

Android SDK Build-Tools 25.0.2

build-tools;25.0.3

25.0.3

Android SDK Build-Tools 25.0.3

build-tools;26.0.0

26.0.0

Android SDK Build-Tools 26

build-tools;26.0.1

26.0.1

Android SDK Build-Tools 26.0.1

cmake;3.6.4111459

3.6.4111459

CMake 3.6.4111459

docs

1

Documentation for Android SDK

emulator

26.1.3

Android Emulator

extras;android;gapid;1

1.0.3

GPU Debugging tools

extras;android;gapid;3

3.1.0

GPU Debugging tools

extras;android;m2repository

47.0.0

Android Support Repository

extras;google;auto

1.1

Android Auto Desktop Head Unit…

extras;google;g…e_play_services

43

Google Play services