检查JDK
如果jdk是通过yum安装的OpenJDK,则需要卸载之后重新安装,否则编译时会报错
1
2
3
4
5
6
7
8
9
10
11
12
13
* What went wrong:
Execution failed for task ':base:compileDebugJavaWithJavac'.
> Could not find tools.jar. Please check that /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre contains a valid JDK installation.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.6.4/userguide/command_line_interface.html#sec:command_line_warnings
关闭Jenkins
1
2# service jenkins stop
Stopping jenkins (via systemctl): [ OK ]查看yum已安装的jdk
1
2
3# rpm -qa | grep openjdk
java-1.8.0-openjdk-headless-1.8.0.232.b09-0.el7_7.x86_64
java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64卸载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51# yum -y remove java-1.8.0-openjdk-headless-1.8.0.232.b09-0.el7_7.x86_64
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 java-1.8.0-openjdk-headless.x86_64.1.1.8.0.232.b09-0.el7_7 将被 删除
--> 正在处理依赖关系 java-1.8.0-openjdk-headless(x86-64) = 1:1.8.0.232.b09-0.el7_7,它被软件包 1:java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 需要
--> 正在处理依赖关系 libjava.so()(64bit),它被软件包 1:java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 需要
--> 正在处理依赖关系 libjava.so(SUNWprivate_1.1)(64bit),它被软件包 1:java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 需要
--> 正在处理依赖关系 libjvm.so()(64bit),它被软件包 1:java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 需要
--> 正在处理依赖关系 libjvm.so(SUNWprivate_1.1)(64bit),它被软件包 1:java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 需要
--> 正在检查事务
---> 软件包 java-1.8.0-openjdk.x86_64.1.1.8.0.232.b09-0.el7_7 将被 删除
--> 解决依赖关系完成
依赖关系解决
================================================================================
Package 架构 版本 源 大小
================================================================================
正在删除:
java-1.8.0-openjdk-headless x86_64 1:1.8.0.232.b09-0.el7_7 @updates 107 M
为依赖而移除:
java-1.8.0-openjdk x86_64 1:1.8.0.232.b09-0.el7_7 @updates 646 k
事务概要
================================================================================
移除 1 软件包 (+1 依赖软件包)
安装大小:107 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在删除 : 1:java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 1/2
正在删除 : 1:java-1.8.0-openjdk-headless-1.8.0.232.b09-0.el7_7.x86_6 2/2
验证中 : 1:java-1.8.0-openjdk-headless-1.8.0.232.b09-0.el7_7.x86_6 1/2
验证中 : 1:java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 2/2
删除:
java-1.8.0-openjdk-headless.x86_64 1:1.8.0.232.b09-0.el7_7
作为依赖被删除:
java-1.8.0-openjdk.x86_64 1:1.8.0.232.b09-0.el7_7
完毕!
# yum -y remove java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64
已加载插件:fastestmirror
参数 java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 没有匹配
不删除任何软件包下载jdk最新的
jdk-8u251-linux-x64.rpm
安装包,上传到服务器 地址执行命令开始安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# chmod 777 jdk-8u251-linux-x64.rpm
# rpm -ivh jdk-8u251-linux-x64.rpm
警告:jdk-8u251-linux-x64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:jdk1.8-2000:1.8.0_251-fcs ################################# [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...设置环境变量,
vim /etc/profile
,加入java路径1
2
3
4export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH刷新变量
source /etc/profile
- 检查jdk版本
1
2
3
4# java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
安装Android SDK Tools
Google不再提供完整的sdk包更新,需要通过
SDKManager
下载更新,可单独下载SDKManager
上传到服务器上(链接)
- 下载、上传到服务器
- 创建文件夹’…/android-sdk-linux/cmdline-tools/‘
- 解压到sdk目标路径,并更名为
lastest
解压出来的
tools
目录需要更名为lastest
,且父目录名称为cmdline-tools
,全路径如.../android-sdk-linux/cmdline-tools/lastest/
,否则运行sdkmanager --list
时会提示Warning: Could not create settings
、java.lang.IllegalArgumentException
- 进入
.../cmdline-tools/lastest/bin
,运行sdkmanager --list
查看已安装的包 - 运行
./sdkmanager "platform-tools" "platforms;android-28"
安装所需要的包(弹出的协调需要输入y
,接受) - 运行
./sdkmanager –licenses
接受所有协议
安装Gradle(可选)
- 下载所需版本的Gradle包,并解压到安装路径(链接)
- 在Jenkins中配置(新版的Jenkins可以自动安装gradle,第一次编译需要额外时间下载,也可以选择本地已有的gradle路径)
Jenkins配置
- 进入配置页面
Jenkins
>系统管理(Manage Jenkins)
>全局工具配置(Global Tool Configuration)
>Gradle
- 选择
Gradle安装
,点击新增Gradle
,输入名称、选择版本- 勾选
自动安装(Install automatically)
,则gradle会在第一次构建时自动下载,比较耗时; - 去掉勾选
自动安装(Install automatically)
,则需要输入本地gradle路径;
- 勾选
- 进入配置页面
Jenkins
>系统管理(Manage Jenkins)
>系统配置(Configure System)
- 配置android sdk路径
创建Android构建项目
- 创建自由风格项目
- 配置git地址、分支名
构建
>Invoke Gradle script
项中,选择gradle版本- 在
Tasks
,输入构建命令参数,比如clean
、--no-daemon assembleTest
构建
>执行Shell
项中,输入构建后操作,比如上传蒲公英
- 保存,点击立即构建
可以安装
Git Parameter
插件,在项目详情里直接选择构建分支进行构建
异常处理
直接运行sdkmanager报错Warning: Could not create settings
1 | # ./sdkmanager -list |
- 将解压出来的sdkmanager工具目录
tools
,改为lastest
,并移动到android-sdk目录/cmdline-tools/
下,tools
的父目录名称必须为cmdline-tools
提示SDK协议未接受
1 | > Configure project :app |
- 下载SDKManager工具
- 运行命令
1
./sdkmanager –licenses
提示Could not read script 'flutter/packages/flutter_tools/gradle/app_plugin_loader.gradle' as it does not exist
确保项目名没有特殊字符,‘-’貌似也算
1
2 $ rm android/settings.gradle
$ flutter create .