第一次尝试 使用Gradle 进行android环境的编译、打包,期间问题出现不少,幸亏有耐心一一解决,如今将问题记录下来,分享下android
一、问题一 gradle版本不对(与实际项目要求的不一致)服务器
问题描述:构建失败的缘由是gradle的版本不对,要求是2.10的,我本机是3.1的app
解决办法一:手动下载gradle2.10的版本,而后从新构建解决。fetch
解决办法二:在jenkins的Global Tool Configuration配置中的Gradle设置项中选择自动安装Gradle,选择要安装的版本便可gradle
构建时,jenkins会自动安装Gradleui
注:打包要求的gradle版本可查看项目文件夹中的\gradle\wrapper\ gradle-wrapper.properties文件中的版本spa
二、问题二 SDK未安装或配置路径与编译的服务器上SDK路径不符,致使编译错误3d
解决方法:未安装SDK的,需下载Adt Bundle或android studio,而后设置项目中的local.properties文件来指定该sdk路径code
三、问题三 sdk/platforms中没有对应的文件,致使编译失败orm
解决方法:在Adt Bundle或android studio中打开SDK Manager,进行更新对应文件便可
注:Android SDK Manager国内没法更新的解决方案
1.启动 Android SDK Manager ,打开主界面,依次选择「Tools」、「Options...」,弹出『Android SDK Manager - Settings』窗口;
2.在『Android SDK Manager - Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入mirrors.neusoft.edu.cn和80,而且选中「Force https://... sources to be fetched using http://...」复选框。设置完成后单击「Close」按钮关闭『Android SDK Manager - Settings』,窗口返回到主界面;
3.依次选择「Packages」、「Reload」
四、问题四:找不到对应的包 Could not find com.android.support:appcompat-v7:23.2.0
提示咱们系统没有找到23.2.0的相应版本的包,也就是说在lib文件夹下面没有你所请求的配置
解决方法:
经过SDK Manager下载所需的SDK,特别是Extras选项,建议全选而后下载尝试便可解决问题(我这里是将android6.0(API 23)和extras目录下的全部内容都下载了后问题解决),见下图:
五、问题五:找不到签名配置Execution failed for task ':app:validateRelealseSigning'.
> Keystore file E:/runa/rn.key.jks not found for signing config 'relealse'.
解决方法:
方法一:注释掉签名配置的代码(不推荐)
方法二:使用android studio去建立keystore(推荐)
步骤1:安装好android studio后打开android studio,新建project后,点击Build→Generate Signed APK…
步骤2:Create New···(已经建立过keystore选Choose existing···)
步骤3:填写相关信息
设置keystore路径、密码,设置key:别名、密码、有效期,证书等Key store path:存放路径
Key
Alias:别名
Validity(years):有效期(通常默认25年)
Certificate:证书
First and Last Name:姓名
Organization Unit:组织单位
Organization:组织
City or Locality:城市或地区
State or Province:州或省
Country Code(XX):国家代码(XX),中国:86
上面的内容可按照app\build.gradle中内容去填写,或者随意写好后,按照设置的内容去配置build.gradle中的签名配置。
六、问题六:执行 lint task的时候报错
这个是由于代码不符合规范,lint检查时报错,所以中断了整个编译过程。只要在当前app的app/build.gradle文件内增长以下代码便可:
android { ... lintOptions { abortOnError false } ... }