高德地圖API INVALID_USER_SCODE問題以及keystore問題

今天這篇文章會給你們介紹三個問題:java

1,接入API時出現invalid_user_scode問題

首先進行第一個大問題,接入高德地圖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填寫格式錯誤,錯誤示範以下:

 

    

       正確的填寫格式以下:


到此,個人程序已經能夠實現定位,以下圖:

 

2,如何建立本身的keystore,以及如何修改發佈版和測試版的keystore

如今討論第二個大問題,如何建立keystore文件,以及如何去修改發佈版和開發版的keystore:

以Androidstudio爲例進行keystore文件的建立:

接下來:

而後,圖中紅線標註的地方,是必需要記住的 ,由於須要在程序裏使用

完成以上步驟後,你的keystore文件就建立成功了,接下來,你須要在build.gradle文件中使用,文中已經交到了,再也不贅述,對不一樣 的keystore文件作相應修改便可,但要記住當你的keystore文件修改時也就表明你程序的sha1將要發生變化,必定要記得在網上對你的應用進行配置更新

 

3,如何查看keystore文件的sha1安全碼

第三個大問題,有了keystroe文件後,如何去查看所謂的sha1碼呢?

須要藉助cmd,(若是不知道如何打開cmd,以及jdk的配置,請自行百度,博主再也不多說)

在cmd中輸入以下命令:keytool -list -keystore <keystore位置>

而後輸入密碼,獲得sha1:

相關文章
相關標籤/搜索