AndroidStudio打包apk,安装出现签名冲突--解决办法
Android UiAutomator2项目部署到jenkins上,实现自动打包,并自动push&安装到设备上
遇到问题:
可成功实现自动打包并push到设备上后,install -r 的时候报错:
INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
显示签名不一致,本打算手动先卸载原有的包,再重新安装,但同样无法卸载,卸载过程中报错:
Failure [DELETE_FAILED_INTERNAL_ERROR]
在网上找了很多解决这两个错误的方法,但都无法解决问题。因为项目代码里并没有任何地方配置了签名信息,怎么在本机上构建的apk和在jenkins上构建的apk会出现签名冲突呢?百思不得解。
后在这篇文章http://blog.csdn.net/penglijiang/article/details/8626108看到这段话:
Android系统要求所有的程序经过数字签名才能安装,如果没有可用的数字签名,系统将不许安装运行此程序,不管是模拟器还是真实手机。因此,在设备或者是模拟器上运行调试程序之前,必须为应用程序设置数字签名。Android系统仅仅会在安装的时候测试签名证书的有效期,如果应用程序的签名是在安装之后才到期,那么应用程序仍然可以正常启用。
Android通过数字签名来 标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定用户可不可以安装该应用程序。android的这个签名由应用程序的作者完成,并不需要权 威的数字证书签名机构认证,他只是用来让应用程序包自我认证的。Android系统默认自动给应用程序签名,ADT会自动使用debug密钥为应用程序签名,debug密钥是一个名为debug.keystore的文件。
才发现原来不配置签名信息 就是最大的问题 ~
查询本机 $ sudo find / -name debug.keystore
找到位置位于电脑的:~/.android/debug.keystore,AndroidStudio打包时默认用的是此处的keystore签名。
可想而知:每个机器都使用自己本地的keystore,那么install到设备时必然会出现签名冲突的问题,解决办法就是配置一个共同使用的keystore。
回到app下的build.gradle,在里面增加这段代码
android {
signingConfigs {
debug {
storeFile file('keystores/debug.keystore')
}
release {
keyAlias 'androiddebugkey'
keyPassword 'android'
storeFile file('keystores/debug.keystore')
storePassword 'android'
}
}
在app下新建keystores目录,将debug.keystore文件放置在该目录下,这样共享代码库的其他人都能共享此签名key。问题解决。。。
ps : debug.keystore文件具体怎么生成可在网上查询,资料很多。。
AndroidStudio打包apk,安装出现签名冲突--解决办法的更多相关文章
- unity 打包apk安装失败
Unity 打包Apk安装失败,错误提示:安卓未完成. 解决方案:检查BundleID是否一致
- Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法
Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法 如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1i ...
- windows 2008R2 无法安装操作系统补丁,或无法安装Sp1升级包的解决办法
windows 2008R2 无法安装操作系统补丁,或无法安装Sp1升级包的解决办法 给 C:\ 加上users读取和执行,,列出文件夹内容,及读取的权限,不需要就用到子目录 将 C:\Windows ...
- Win7安装错误提示与解决办法大全
Windows7安装时有许多提示错误,许多朋友不知道如何解决,那就看看这篇软媒整理的文章吧,或许有些帮助.本文出现的问题同样应用于其他版本的Windows 7,甚至是Vista,收藏一下本文,或者某天 ...
- Linux中oracle安装时候报ora-00119解决办法
ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00130: invalid listener add ...
- sublime text 3 无法安装Package Control插件解决办法
sublime text 3 无法安装Package Control插件解决办法 ***关于sublime text 3 常用的 Package Control插件的安装方法*** 1.CTRL+` ...
- npm install 错误 安装 chromedriver 失败的解决办法
npm 安装 chromedriver 失败的解决办法npm 安装 chromedriver 时,偶尔会出错,错误提示类似于:npm ERR! chromedriver@2.35.0 install: ...
- Git应用--04遇到冲突解决办法git stash(转载)
git merge git pull时候遇到冲突解决办法git stash https://www.cnblogs.com/juandx/p/5362723.html 在使用git pull代码时,经 ...
- PHP编译安装时常见错误解决办法,php编译常见错误
PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...
随机推荐
- join和split 的使用
var abc = new Array(a,b,c,d,e); abc.join('-') // 结果 : a-b-c-d-e-f var obk = 'a-b-c-d-e'; obk.split(' ...
- 将excel中的数据填入word模板中-VBA
首先将word模板中需要填写excel中数据的空白处用自己独特的字符串标记,比如 数据001 什么的.如下图: 这样,就可以用vba搜寻这些自己独特的标记来根据excel内容填充word了. 第 ...
- JAVA经典算法40+
现在是3月份,也是每年开年企业公司招聘的高峰期,同时有许多的朋友也出来找工作.现在的招聘他们有时会给你出一套面试题或者智力测试题,也有的直接让你上机操作,写一段程序.算法的计算不乏出现,基于这个原因我 ...
- BZOJ 2120 数颜色 (带修莫队)
2120: 数颜色 Time Limit: 6 Sec Memory Limit: 259 MBSubmit: 6367 Solved: 2537[Submit][Status][Discuss] ...
- SpringBoot中用Fastjson替换默认的Jackson
一:前言 经过测试,Jackson有很多不合人意的地方,因此建议用Fastjson来替换: 二:Jackson的坑 先定义实体类: @Data @AllArgsConstructor @NoArgsC ...
- ajax GET 传输中文乱码
关于客户端get传输到服务端乱码解决: <script> //ajakx 传输变量 var xmlhttp; if (window.XMLHttpRequest) {// code for ...
- 好文推荐系列---------(4)使用Yeoman自动构建Ember项目
好文原文地址:http://segmentfault.com/a/1190000000368881 我决定学习前端开发的效率工具Yeoman.本文将首先介绍Yeoman的基本情况,接着我们会使用Yeo ...
- Ng第十六课:推荐系统(Recommender Systems)
16.1 问题形式化 16.2 基于内容的推荐系统 16.3 协同过滤 16.4 协同过滤算法 16.5 矢量化:低秩矩阵分解 16.6 推行工作上的细节:均值归一化 16.1 问题形式 ...
- IT桔子-抓取数据
- POJ2229 Sumsets
Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 19024 Accepted: 7431 Descrip ...