'keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

本篇篇幅较长,如需简化版点击这里

背景:

昨天集成百度定位的sdk时,根据官方文档中获取sha值官方文档,自己没有获取成功 一直提示:
‘keytool’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。日了uzi,很郁闷,就百度了下,改变获取
sha值的方法:详情在本人的上一篇博客中点击这里
获取成功后也成功生成了百度定位所需要的Ak值,并且用不同手机,不同网络环境下也定位成功了;那就打包正式上线吧

下载正式包,进行定位!结果,问题来了:
定位,只能定位成功一次,后续一直出现505错误,提示清单文件中ak值配置错误,嗯???明明定位成功了,为啥现在不行了 解决方法点击这里

看了这么多,是不是觉得很乱,总结下就是,在Android studio 工具中,右上角——>gradle——>tasks——>android——>signingReport(双击后) 即可在控制台查看sha值,这个sha值是debug模式下的,并不是release模式下的,(妈的,日志信息写的很明确,自己没注意看而已,哎);

所以如何通过命令行来获取自己的sha值呢;(本人windows 环境下)


win + r 输入cmd,然后点击 enter ;就打开dos窗口 ,然后找到自己的 .android文件夹;
然后 : cd .android (如果你的.android 在其他文件夹下,请cd进入该文件)
'keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

提示错误,是不是很蛋疼,就是找不到keytool工具,那就找我们的keytool工具,然后再输入上面命令就行了,
首先,我们需要找到自己的 jdk 所在的路径,keytool就在该文件夹里面,所以
(1)如图
'keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

(2)如图
'keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

进入你的jdk目录下,然后输入: keytool -list -v -keystore debug.keystore

提示找不到debug.store,那就把他的根目录拼接上:

输入:keytool -list -v -keystore C:\Users\Lenovo.android\debug.keystore

结果如下图:

'keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

上面是debug的sha值;发布正式包,需要用到release的sha值;

输入:keytool -list -v -keystore D:\MyAndroidProjects\baidulocation.jks

其中 D:\MyAndroidProjects\baidulocation.jks 是我已经生成的签名文件的存放目录 (你需要输入你的即可,如果你还没有生成,或者不会,请自行百度,Android 打包签名文件,或者点击这里

结果如图:
'keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

好了现在就得到release版本的sha值了,百度地图定位可以发布了!!!