天天看點

百度地圖開發(二)配置百度地圖SDK一、下載下傳百度地圖SDK二、在工程中加入SDK三、使用百度地圖四、常見問題

一、下載下傳百度地圖SDK

下載下傳位址:http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download

二、在工程中加入SDK

1.将百度地圖SDK中的jar包複制到工程目錄下的libs檔案夾

2.選擇所有jar包,右鍵->add as library->确定

3.在src/main/目錄下建立一個檔案夾,存放.so檔案【請将v8a、v7a和abi檔案夾都複制進去,否則會出現錯誤:No implementation found for long com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create

1.将百度地圖SDK所有jar包複制在工程目錄下的libs檔案夾内

2.選擇所有jar包,右鍵選擇 add as library ,點選确認

3.在src/main/目錄下建立一個JniLibs的檔案夾用來存放so檔案(so檔案時UNIX的動态連結庫)

百度地圖開發(二)配置百度地圖SDK一、下載下傳百度地圖SDK二、在工程中加入SDK三、使用百度地圖四、常見問題

三、使用百度地圖

【摘自百度官方網站:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/hellobaidumap】

在AndroidManifest中添加開發密鑰、所需權限等資訊

(1)在application中添加開發密鑰

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        //在application中添加開發密鑰
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="BmXUnkE56RHrZmdv1GHYDMgtKViFbAUQ" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
           

(2)添權重限

//添加所需的權限
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    //擷取裝置網絡狀态,禁用後無法擷取網絡狀态
    <uses-permission android:name="android.permission.INTERNET"/>
    //網絡權限,當禁用後,無法進行檢索等相關業務
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    //讀取裝置硬體資訊,統計資料
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    //讀取系統資訊,包含系統版本等資訊,用作統計
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    //擷取裝置的網絡狀态,鑒權所需網絡代理
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    //允許sd卡寫權限,需寫入地圖資料,禁用後無法顯示地圖
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    //擷取統計資料
    <uses-permission android:name="android.permission.CAMERA" />
    //使用步行AR導航,配置Camera權限
           

(3)在布局xml檔案(預設activity_main.xml)中添加地圖控件

<com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:focusable="true" />
           

(4)在應用程式建立時初始化SDK引用的Context 是全局變量

private 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);
    }
           

(5)建立地圖Activity,管理地圖生命周期

protected void onDestroy(){
        super.onDestroy();
        //在activity執行onDestroy時執行mMapView.onDestory(),實作地圖生命周期管理
        mMapView.onDestroy();
    }
    protected void onResume(){
        super.onResume();
        //在activity執行onResume時執行mMapView.onResume(),實作地圖生命周期管理
        mMapView.onResume();
    }

    protected void onPause(){
        super.onPause();
        //在activity執行onPause時執行mMapView.onPause(),實作地圖生命周期管理
        mMapView.onPause();
    }
           

完成以上步驟後,運作程式,即可在您的應用中顯示地圖

百度地圖開發(二)配置百度地圖SDK一、下載下傳百度地圖SDK二、在工程中加入SDK三、使用百度地圖四、常見問題

四、常見問題

問題:工程代碼顯示:找不到jar包

解答:将百度地圖jar包複制到工程目錄下的libs的同時,還需要add as library,同時在src/main/下建立一個檔案夾,用于存放.so檔案

問題:No implementation found for long com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create

解答:請在src/main/下建立一個檔案夾,用于存放.so檔案,并且需要将v8a、v7a和abi檔案夾都複制進去

問題:SHA1的擷取

解答:請參考上文

問題:Failure [INSTALL_FAILED_NO_MATCHING_ABIS]

解答:虛拟裝置要選擇 arm或者直接打包安裝到手機上看效果吧

問題:隻顯示網格,沒有地圖

解答:(1)沒有網絡;

           (2)簽名(SHA1)包名、API key等其中任意一項設定不正确;

           (3)AndroidManifest中的配置的不正确:比如API權限、API_KEY、以及uses-permission、meta-data的位置等等

繼續閱讀