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


今天這篇文章會給大家介紹三個問題:

1,接入API時出現invalid_user_scode問題

首先進行第一個大問題,接入高德地圖API時出現invalid_user_scode問題

因為項目需要接入高德地圖的API,在接入其它API時會出現類似問題,在進行定位的時候出現了下列問題

 

運行時log信息如下

可以看到,定位失敗有兩個原因:

1,錯誤代碼為10,定位服務啟動失敗。

2,錯誤代碼為7,key錯誤。

根據高德地圖的官方使用文檔的介紹,對相關問題進行處理

 

問題1:服務啟動失敗:檢查清單配置文件Androidmanifest.xml,服務已經配置完成,如下

 

<service android:name="com.amap.api.location.APSService"/>

 

后來對比高德地圖給的demo才發現,是因為少加了一個jar包,如下圖中未添加藍色選中的包

添加上之后,運行程序,進行定位操作,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:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM