首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 接入百度地圖 SDK 完整指南:從申請 Key 到顯示地圖

     編輯:程式設計綜合問答

前置準備

  1. 在 百度地圖開放平台 註冊開發者賬號,完成實名認證。
  2. 創建應用,獲取 AK (Access Key),勾選「Android SDK」服務,填入包名與 SHA1 指紋。
  3. 下載最新 SDK 包(含 BaiduMapSDK_Map.jar、libBaiduMapSDK_map.so 等)。

Gradle 依賴配置

// build.gradle (Module: app)
dependencies {
    implementation files('libs/BaiduMapSDK_Map.jar')
    // 若使用 Maven 遠程倉庫(推薦)
    implementation 'com.baidu.mapapi:map-sdk:3.0.0' // 版本號以官網為準
}

同步後,將 .so 文件放入 src/main/jniLibs/arm64-v8a/ 及 armeabi-v7a/ 目錄。

AndroidManifest 權限與組件聲明

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application ...>
    <meta-data
        android:name="com.baidu.lbsapi.API_KEY"
        android:value="你的_AK_Key"/>
    <service
        android:name="com.baidu.location.f"
        android:enabled="true"
        android:process=":remote"></service>
</application>

初始化 SDK 與地圖容器

// Application 子類中
public class MyApp extends Application {
    @Override public void onCreate() {
        super.onCreate();
        SDKInitializer.initialize(this);
    }
}
<!-- activity_main.xml -->
<com.baidu.mapapi.map.MapView
    android:id="@+id/bmapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
// MainActivity.java
public class MainActivity extends AppCompatActivity {
    private MapView mMapView;
    private BaiduMap mBaiduMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mMapView = findViewById(R.id.bmapView);
        mBaiduMap = mMapView.getMap();
        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
        // 開啟定位圖層
        mBaiduMap.setMyLocationEnabled(true);
    }

    @Override protected void onResume() { super.onResume(); mMapView.onResume(); }
    @Override protected void onPause() { super.onPause(); mMapView.onPause(); }
    @Override protected void onDestroy() { super.onDestroy(); mMapView.onDestroy(); }
}

常見功能速查

  • 定位:集成 LocationClient,配置 LocationClientOption,回調 BDAbstractLocationListener。
  • 覆蓋物:MarkerOptions、PolylineOptions、GroundOverlayOptions。
  • 路線規劃:RoutePlanSearch 驅動/騎行/步行/公交策略。
  • 地理編碼:GeoCoder 正/逆地理編碼。

避坑指南

  1. AK 與包名/簽名不匹配 → Authentication failed,請核對 SHA1(Debug/Release 區分)。
  2. 64 位設備崩潰 → 確認 jniLibs 包含 arm64-v8a。
  3. 地圖白屏 → 檢查網絡權限、AK 有效性、是否調用 onResume/onPause 生命週期。

更多進階用法請參考 官方開發指南 或 CSDN 相關博客實戰教程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved