1. 程式人生 > >Android Studio中使用百度地圖API,不顯示地圖的問題解決辦法

Android Studio中使用百度地圖API,不顯示地圖的問題解決辦法

一年前用過這個,當時也遇到很多問題,後面慢慢解決了,然而沒有總結遇到的問題,現在重新做這個,又浪費了一天時間終於解決了崩潰和不顯示地圖的問題,記錄一下

一丶將百度地圖SDK新增到專案中

進入這個網址點選自定義下載之後,選擇你要的功能,然後點下面的開發包,最好把示例程式碼也下下來,雖然官網有使用的說明,但是每次按照上面說的都沒有成功過,也不知道是不是臉黑
這裡寫圖片描述

  • 將下載的SDK加入專案
    我們將下載的sdk壓縮包中的libs資料夾解壓出來,然後複製libs資料夾下的所有檔案
    這裡寫圖片描述

將複製的檔案貼上到專案的libs資料夾下
這裡寫圖片描述

總共6個,其中arm64-v8a,armeabi,armeabi-v7a,x86,x86_64裡面都是so檔案,而且這幾個裡面的so都一樣,我們需要新增一下下面的BaiduLBS_Android.jar檔案,右鍵該檔案,選擇Add As Library,然後點選ok
這裡寫圖片描述

二、申請AK

在這塊有很多人遇到只顯示網格,載入不出地圖的問題,這個一般是AK申請的不對,在上面連結中,我們申請AK需要一個SHA1和包名

  • 包名獲取方式
    包名可以在AndroidManifest.xml中看到,如下
    這裡寫圖片描述

  • SHA1獲取方式
    進入Android Studio的命令列
    這裡寫圖片描述

進入到C:\users\你的使用者名稱.android 然後輸入下面的命令:
keytool -list -v -keystore debug.keystore

有些人可能因為重灌系統等原因,這個資料夾下沒有debug.keystore,雖然有自己建立一個該檔案的方法,但是這裡不寫下來,因為好像獲取到的不對….

這裡寫圖片描述

輸入密碼之後,就能得到sha1了,如下圖:
這裡寫圖片描述

申請AK的時候,如果只是自己做demo的話,SHA1填到釋出版SHA1即可,然後就能獲得我們這個demo的AK了
這裡寫圖片描述

這裡寫圖片描述

(如果打包的話,原來的AK就不能用了,我們需要重新設定一下發布版SHA1和開發版SHA1)

三、專案配置

在build.gradle中有一個android塊,在其中加入sourceSets塊,如下

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.example.gao.test"
minSdkVersion 14 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } //加入sourceSets塊 sourceSets { main { jniLibs.srcDirs = ['libs'] } } }

按照上面官網的說明,將在第二步中申請到的AK複製到你的AndroidManifest.xml下,如圖,放到value的值裡
這裡寫圖片描述

四、不顯示地圖的問題解決方法

   對於這個問題,一般是AK不對,也就是申請的時候,我們的SHA1和包名其中可能不對,對於包名,在AndroidManifest.xml中得到。
   對於SHA1,如果按照第二步做仍然不顯示地圖,還有一個驗證SHA1的手機軟體:

下載之後,安裝到手機上可以檢視你手機上應用的正確的sha1和包名
這裡寫圖片描述

點選你的demo

這裡寫圖片描述

這裡就能看到你正確的sha1和包名了,可以去檢查一下,你申請key的時候使用的sha1和包名是否和這個一致,不一致就顯示不出來地圖,可以更改為正確的sha1或者重新申請一個ak,重新申請的話,別忘了修改AndroidManifest.xml中的AK值。

五、問題總結

1.程式崩潰
注意一下第三步中有沒有在AndroidManifest.xml中新增sourceSets塊
2.只顯網格,不顯示地圖
1).沒有聯網
2).AK不對,注意申請的時候的包名和SHA1,最好的辦法就是使用第四步的方法檢驗一下sha1和包名,和申請ak的時候是否一致,不一致用第四步得到的sha1和包名重新申請一個ak
3).第三步中注意加入的各個程式碼的位置是否正確