天天看點

Android百度地圖HelloWorld運作異常處理

     Android新手百度地圖HelloWorld運作異常,所有的步驟都是按照百度官方操作來的但是啟動的時候報錯,而且這些錯誤很離譜.後來拿來官方的示例程式也是有相關的錯誤的,最後發現主要的問題在于AVD版本沒有和SDK的版本對應起來,另外地圖的ak簽名需要用系統cmd方式擷取而不是Eclipse來擷取(這兩種方式擷取到的SHA1簽名不一緻)。

1.AVD版本不對應Android sdk的版本導緻程式啟動不起來

源碼見此處:http://developer.baidu.com/map/wiki/index.php?title=androidsdk/guide/hellobaidumap,錯誤如下:

Android百度地圖HelloWorld運作異常處理

 找了很久其實不是API的問題,也不是程式的問題而是AVD 模拟器的問題,我用的是Android的4.4.w是以虛拟機也要建立相同的版本,不然就有如上意想不到的事情發生。

2.簽名驗證失敗調用地圖API地圖無法顯示

總是出現如下圖所示的界面:

Android百度地圖HelloWorld運作異常處理

這是由于SHA1簽名不比對造成的。将百度APP建立的項目及ak删掉重新建立,得到新的ak。ak生成方式見:http://developer.baidu.com/map/sdkandev-14.htm,用cmd方式擷取到SHA1的ak才行。

3.測試重新注冊後的ak

在AndroidManifest.xml中加入如下代碼的:

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <!-- 配置百度地圖key -->
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="GaCKiZmOn99Vb7uDEWfrlV3b" />
            ......................
      

啟動AVD測試,如下測試成功:

Android百度地圖HelloWorld運作異常處理

注:oschina(開源中國)上有人說百度官網上的API更新不及時,是以導緻程式運作不起來,這個可能未必是這樣,不要把所有的問題歸結為百度地圖本身的問題,否則就會阻止自己成長和提高了;多從自己的角度出發,利用工具去發現問題尋找問題的突破口才是最佳實踐之道。