Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android百度地圖API集成一《基礎地圖》,集成百度地圖api

Android百度地圖API集成一《基礎地圖》,集成百度地圖api

編輯:關於android開發

Android百度地圖API集成一《基礎地圖》,集成百度地圖api


  在使用百度地圖API集成百度地圖時,碰到了一些坑,特開此貼記錄。。。

  直接開始代碼

  1.新建一個工程

  建議使用AS!如果使用ES的話,會出現一個java.lang.NoClassDefFoundError: com.baidu.location.LocationClient 這種錯誤,在網上百度了半天時間,大都是同樣的一些答案,而且都解決不了問題!(這也是我很郁悶的一件事,為什麼有些沒用的東西,有些人還瘋狂的轉來轉去。。。)所以,最終我還是選擇使用了AS。

  2.進入百度地圖首頁

  1)沒有賬號的話,申請一個百度賬號

  2)下載百度地圖示例代碼,並解壓(下載時可能會下載失敗,沒辦法,多下幾次吧。。。)

        

    解壓如下

        

 

 

  3.根據官方文檔Android地圖SDK,集成基礎的地圖頁面

    

 

    1)獲取密鑰

      * 點擊獲取密鑰

       

 

 

      * 填寫信息

       

    

       應用名稱(在工程的value >> String.xml >> app_name)

       SHA1值:命令行窗口 >> keytool -list -v -keystore FilePath (FilePath:C盤 >> 用戶 >> .android >> debug.keystore)

          

          

 

          注意:如果運行報錯   203:校驗碼錯誤

             解決方法:1.將運行後的.apk文件,復制出來,後綴名更改為zip,並解壓

                    

                  2.命令行窗口 >> keytool -printcert -file FilePath (FilePath:如上圖)

                    

                  3.拿到這個SHA1值,最好是去重新到百度地圖開放平台上重新創建一次應用,獲得一個新的密鑰(記得在AndroidManifest.xml中修改)

 

      包名:AndroidManifest.xml中

  

      * 得到一個密鑰

       

     2) 配置

      * 導入jar包,並引用

       

 

      * 在build.gradle  >> android  中插入下面代碼  

 sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

  

      * 在application中添加開發密鑰

<meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="開發者 key" />     <!-- 這個開發者key,修改成我們上面創建應用獲得的密鑰即可 -->

      * 添加所需權限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

      * 在布局xml文件中添加地圖控件

1 <com.baidu.mapapi.map.MapView  
2     android:id="@+id/bmapView"  
3     android:layout_width="fill_parent"  
4     android:layout_height="fill_parent"  
5     android:clickable="true" />

 

      * 在應用程序創建時初始化 SDK引用的Context 全局變量,管理地圖生命周期

public class MainActivity extends Activity {  
    MapView mMapView = null;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在使用SDK各組件之前初始化context信息,傳入ApplicationContext  
        //注意該方法要再setContentView方法之前實現  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
        //獲取地圖控件引用  
        mMapView = (MapView) findViewById(R.id.bmapView);  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        //在activity執行onDestroy時執行mMapView.onDestroy(),實現地圖生命周期管理  
        mMapView.onDestroy();  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();  
        //在activity執行onResume時執行mMapView. onResume (),實現地圖生命周期管理  
        mMapView.onResume();  
        }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        //在activity執行onPause時執行mMapView. onPause (),實現地圖生命周期管理  
        mMapView.onPause();  
        }  
    }

 

   

      完成以上步驟後,運行程序,即可在您的應用中顯示如下地圖:

      android_dev2.jpg

 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved