找到debug.keystore并删除
路径 User\用户名\android\debug.keystore
我的目录:C:\Users\growu\.android\debug.keystore
删除后
重新运行当前
项目,会自动的在生成一个debug.keystore文件。
File ---> Project Structure---->SDK Location ---> Gradle Srttings
进入当前项目jdk根目录bin cmd (我这里用的是AndroidStudio自带的jre)要进入bin根路径
D:\Software\Java\android\AndroidStudio\jre\bin
然后 执行
keytool -list -v -keystore debug.keystore
命令进行检查是否有错
指定debug.keystore全路径,一般在系统盘,
用户名/.android
目录下:
keytool -list -v -keystore
C:\Users\growu\.android\debug.keystore
切换成你自己的。
android debug.keystore 的默认密码
默认debug.keystore的信息如下:
Keystore name: “debug.keystore”
Keystore password: “android”
Key alias: “androiddebugkey”
Key password: “android”
CN: “CN=Android Debug,O=Android,C=US”
如果报错:
keytool 错误: java.io.IOException: Invalid keystore format
那就是
当前项目运行debug.keystore(可以去系统用户/.android目录删除,项目运行新创建)
生成keystore和访问keystore的JDK版本不一致。(通俗来讲就是 jks是用和当前jdk的不同版本生成的。比如1.8 和 11 )就会报错。(项目需要有时候本地会配置多个版本的jdk 此时多注意)。
书到用时方恨少,纸上得来终觉浅。
JSSE(
Java
Security Socket Extens
io
n)
是Sun为了解决在Internet上的实现安全信息传输的解决方案。它实现了SSL和TSL(传输层安全)协议。在JSSE中包含了数据加密,服务器验证,消息完整性和客户端验证等技术。通过使用JSSE,可以在Client和Server之间通过TCP/IP协议安全地传输数据。
为了实现消息认证。
Server需要:
1)
KeyStore
: 其中保存服务端的私钥
2)Trust
KeyStore
:其中保存客户端的授权证书
Client需要:
1)
KeyStore
:其中保存客户端的私钥
2)Trust
KeyStore
:其中保存服务端的授权证书
严重: Failed to initialize end point associated with ProtocolHandler ["http-b
io
-
443"]
java
.
io
.
IOException
:
Invalid
keystore
format
at sun.security.provider.
Java
KeyStore
.engineLoad(
Java
Key
Sto
Java
的密钥
库
jks文件放在/src/main/resources目录下,到了编译的时候,就会自动增长变大,导致
java
读取
keystore
文件异常,爆出
java
.
io
.
IOException
:
Invalid
keystore
format
...
这个问题困扰了很久,在以前的项目中就出现过一次,当时由于项目很紧急,就把jks文件放在了/src/...
=这又是一次生产问题协查,痛苦的协查。起因是合作方调用地址变更,变更后的地址是https协议地址,对方新增了一个.jks的证书
库
要加载
代码写完后,一上线发https请求就报错,因为合作方封装了一个sdk的包,报错堆栈信息没有向上返回,是返回了一个“加密失败”,哎。。。。
这里只能把ssl
debug
打开来,打开方法不太清楚的参考另一篇文章
java
ssl调试打开ssl
debug
日志
.
Java
Runtime 1.5, or higher
.
Java
Cryptography Extens
io
n (JCE)
Unlimited Strength Jurisdict
io
n Policy Files 5.0
(http://
java
.sun.com/
java
se/downloads/index.jsp)
解决方案:进入到jdk的bin文件里有,所以找到
keytool
.exe
这是我的路径
C:\Program Files (x86)\
Java
\jdk1.8.0_121\bin
问题又来了。。。。。
java
.
io
.FileNotFoundExcept
io
n:
debug
.
keystore
(拒绝访问。)
以下问题解决参考此文章
权限问题:你的jdk目录在c盘,当前用户无写入权限;
解决方案:修改
Java
目录权限
发现电脑C盘下所有目录的属性都是只读的,以前没注意过(说明:以非管理员权限登录)
在使用
Android
Stud
io
生成签名文件的时候提示:
keytool
错误
:
java
.
io
.
IOException
:Incorrect AVA
format
的
错误
,这个主要是我在填写证书里Organizat
io
n字段的时候里边包含了“,”这个符号,删除这个符号就可以了
keytool
错误
:
java
.
io
.FileNotFoundExcept
io
n: C:\Program Files\
Java
\jdk1.8.0_221\jre\lib\security\cacerts (拒绝访问。)
需要以管理员身份运行cmd,一般这种
错误
是 要写入
keystore
的文件夹没有写权限,可以以管理员身份运行cmd 或者换一个路径写入
Gradle‘s dependency cache may be corrupt (this sometimes occurs after a network connection timeout)
46521