获得SHA1以及错误java.lang.Exception: **库文件不存在: keystore
一:在Android studio中Terminal中切换到相应的盘符下,我的jks文件在D盘,输入keytool -v -list -keystore myfirst.jks “myfist.jks” 是你项目生成的名称
然后输入你的密码,得到如下,其中获得你的SHA1:
二:错误java.lang.Exception: **库文件不存在: keystore
1.你文件的位置没找到
2.其实你还没有生成吧,如何生成?答Android studio中build点击=》GENERATE SIGNED APK
点击后
有的点击choose existing 没有点击create new ,有的就不说了,没有的点击create new
点击后效果:
给你的文件找一个位置,并起一个名字,然后点击ok,我们再次回到这个位置
先给你的key store path设置密码,password输入密码,confirm 再次确认
下面的key:
Alias:**名称
Password/Confirm:**密码
Validity(years):**有效时间
First and Last Name:**颁发者姓名
Organizational Unit:**颁发组织
City or Locality:城市
Country Code(XX):国家
填完点击ok,接下来如下
选择两个版本 V1,V2,引用https://blog.****.net/lvshuchangyin/article/details/62227286
问题描述(v1和v2)
Android 7.0中引入了APK Signature Scheme v2,v1呢是jar Signature来自JDK
V1:应该是通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。
V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度。
解决方案一
v1和v2的签名使用
只勾选v1签名并不会影响什么,但是在7.0上不会使用更安全的验证方式
只勾选V2签名7.0以下会直接安装完显示未安装,7.0以上则使用了V2的方式验证
同时勾选V1和V2则所有机型都没问题
解决方案二
在app的build.gradle的android标签下加入如下
signingConfigs {
debug {
v1SigningEnabled true
v2SigningEnabled true
}
release {
v1SigningEnabled true
v2SigningEnabled true
}
}