今天這篇文章會給你們介紹三個問題:java
首先進行第一個大問題,接入高德地圖API時出現invalid_user_scode問題android
由於項目須要接入高德地圖的API,在接入其它API時會出現相似問題,在進行定位的時候出現了下列問題api
運行時log信息以下安全
能夠看到,定位失敗有兩個緣由:測試
1,錯誤代碼爲10,定位服務啓動失敗。gradle
2,錯誤代碼爲7,key錯誤。ui
根據高德地圖的官方使用文檔的介紹,對相關問題進行處理debug
問題1:服務啓動失敗:檢查清單配置文件Androidmanifest.xml,服務已經配置完成,以下調試
<service android:name="com.amap.api.location.APSService"/>
後來對比高德地圖給的demo才發現,是由於少加了一個jar包,以下圖中未添加藍色選中的包code
添加上以後,運行程序,進行定位操做,log信息以下:
由log所打印的信息,能夠看出三點:
1,定位服務啓動失敗問題已解決,現已啓動成功
2,key錯誤問題仍舊存在
3,調用定位方法時是每隔一小段時間便進行一次定位
接下來,須要解決問題2。
問題2:key錯誤,官方文檔中說,請仔細檢查key綁定sha1與簽名的apk的sha1是否一致:
在解決該問題時發現我犯了兩個不應犯的錯誤:
第一,在build.gradle文件中忘記添加代碼:
android { signingConfigs { //調試版的keystore debug { storeFile file("keystore文件所在位置") storePassword "你規定的密碼" keyAlias "在建立keystore時你所填寫的alias" keyPassword "你規定的密碼" } //發佈版的keystore release { storeFile file("keystore文件所用位置") storePassword "你規定的密碼" keyAlias "在建立該keystore文件時你所寫的alias" keyPassword "你規定的密碼" } } }
第二,在申請key時,個人sha1填寫格式錯誤,錯誤示範以下:
正確的填寫格式以下:
到此,個人程序已經能夠實現定位,以下圖:
如今討論第二個大問題,如何建立keystore文件,以及如何去修改發佈版和開發版的keystore:
以Androidstudio爲例進行keystore文件的建立:
接下來:
而後,圖中紅線標註的地方,是必需要記住的 ,由於須要在程序裏使用
完成以上步驟後,你的keystore文件就建立成功了,接下來,你須要在build.gradle文件中使用,文中已經交到了,再也不贅述,對不一樣 的keystore文件作相應修改便可,但要記住當你的keystore文件修改時也就表明你程序的sha1將要發生變化,必定要記得在網上對你的應用進行配置更新
第三個大問題,有了keystroe文件後,如何去查看所謂的sha1碼呢?
須要藉助cmd,(若是不知道如何打開cmd,以及jdk的配置,請自行百度,博主再也不多說)
在cmd中輸入以下命令:keytool -list -keystore <keystore位置>
而後輸入密碼,獲得sha1: