背景
在给项目生成**文件的时候发现出现了一个错误。
使用 android studio 填写好相关信息后,最后生成**时会报一个 Error,如下图示:
- 报错信息如下:
Key was created with errors:
Warning:
JKS **库使用专用格式。建议使用 “keytool -importkeystore -srckeystore E:\android_key_store\fragment_demo.jks -destkeystore E:\android_key_store\fragment_demo.jks -deststoretype pkcs12” 迁移到行业标准格式 PKCS12。
- 分析
看错误提示,可以看到:因为JKS**库使用专用格式,它建议我们生成**的时候使用 keytool 命令来生成标准的**文件,迁移到行业标准格式 PKCS12
解决问题
那么我们使用 keytool 命令在 cmd 命令行工具中生成**文件,在 cmd 命令窗口中输入如下命令:
keytool -genkey -alias imxiaoqi -keypass imxiaoqi -keyalg RSA -keysize 1024 -validity 36500 -keystore E:\android_key_store\fragment_demo.keystore -storepass imxiaoqi
如下图示:
上面的命令应该不难理解,就是你给**文件设置的生成位置,key alias
、key password
和key store password
,回车后,需要继续按照提示输入相关信息,依次填写好信息后,输入 Y
确认信息即可。
我们看看生成的**文件如下:
- 查看**详细输出信息
输入如下命令:
keytool -list -v -keystore E:\android_key_store\fragment_demo.keystore
如下图示:
上面时生成的是 keystore 后缀的**文件,至于 jks 后缀**和 keystore 后缀**文件的区别,同学们可以看文章 jks与keystore区别 简单了解一下即可。
- 下面我们来生成 jks 后缀的**文件
根据生成 keystore 后缀的**文件命令,简单修改命令如下所示:
keytool -genkey -alias imxiaoqi -keypass imxiaoqi -keyalg RSA -keysize 1024 -validity 36500 -keystore E:\android_key_store\fragment_demo_jks.jks -storepass imxiaoqi
可以看到这里只对**文件名称和后缀作了修改,其他都是一样的,各个参数的意思也是一样的,如下图示:
- 我们继续看一下**输出信息,如下图示:
到这里我们就知道了怎么使用 keytool 命令来生成 jks 后缀或者是 keystore 后缀的**文件。
-
接下来重新选择**文件
-
选择 build variants 生成签名 apk
好了,这里错误我们也解决了,也学会了 keytool 命令。
技术永不眠,我们下期见!