今天在做安卓开发时,笔者发现了一个问题,就是我们使用百度地图API的时候要进行获取SHA1
,用以下命令
keytool -list -v -keystore debug.keystore
于是笔者输入该命令之后,直接输入密码android
,然后就报错如下:
keytool 错误: java.io.IOException: parseAlgParameters failed: ObjectIdentifier() -- data isn't an object ID (tag = 48)
java.io.IOException: parseAlgParameters failed: ObjectIdentifier() -- data isn't an object ID (tag = 48)
at java.base/sun.security.pkcs12.PKCS12KeyStore.parseAlgParameters(PKCS12KeyStore.java:832)
at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2056)
at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:222)
at java.base/java.security.KeyStore.load(KeyStore.java:1479)
at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1024)
at java.base/sun.security.tools.keytool.Main.run(Main.java:397)
at java.base/sun.security.tools.keytool.Main.main(Main.java:390)
Caused by: java.io.IOException: ObjectIdentifier() -- data isn't an object ID (tag = 48)
at java.base/sun.security.util.ObjectIdentifier.<init>(ObjectIdentifier.java:257)
at java.base/sun.security.util.DerInputStream.getOID(DerInputStream.java:320)
at java.base/com.sun.crypto.provider.PBES2Parameters.engineInit(PBES2Parameters.java:268)
at java.base/java.security.AlgorithmParameters.init(AlgorithmParameters.java:312)
at java.base/sun.security.pkcs12.PKCS12KeyStore.parseAlgParameters(PKCS12KeyStore.java:828)
... 6 more
随后笔者前往互联网上一番查找,发现大部分都是说版本不匹配,也就是安卓开发的时候的版本和命令生成的版本不一致,而后笔者打开了Android Studio中的配置文件。
发现确实使用的jdk版本和我本机的javaHome版本不一致,随后笔者定位到这个java文件目录下,再次调用
keytool -list -v -keystore C:\Users\YUNs\.android\debug.keystore
运行成功,解决报错