日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 百度地图开发(一)

發布時間:2023/12/15 Android 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 百度地图开发(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

現在好多手機應用開發需要使用到百度地圖,在使用百度地圖的過程和遇到的問題整理一下方便以后使用

申請密鑰
使用白度地圖首先需要申請API Key,申請百度賬戶才能得到API Key. 登錄 http://developer.baidu.com/map/ 點擊申請密鑰
申請過程中需SHA1,使用Eclipse的同學應該很容易使用圖像工具找到,但是使用Android-studio的同學可能找不到,我也沒有找到
我找的過程是,打開cmd,或者在AS中的Terminal.找到debug-keystore文件,比如我的是D:\Users\*****\.android.

在Termina中進入該文件目錄,然后輸入"keytool -list -v -keystore debug.keystore",命令,記住進入目錄下.


申請密鑰的其他步驟就不在此多說了.拿的密鑰后我們就可以正式在我們的App中使用了.
正式開發
創建好項目后,首先將API包括的兩個文件baidumapapi.jar和libBMapApiEngine.so拷貝到工程根目錄及libs\armeabi目錄下,
AS添加jar有兩種方法,一種是在所要添加的jar上右鍵選擇"Add as library"即可,一種是打開build.gradle,build.gradle有兩個
一定要打開項目內部的build.gradle,添加下面的代碼,
dependencies {
? ? .....
? ? compile files('libs/BaiduLBS_Android.jar')
}


基本使用
在AndroidManifest.xml中添加
<meta-data ?
? ? android:name="com.baidu.lbsapi.API_KEY" ?
? ? android:value="AK" /> ?
name就是上面的name不要改變,value是你申請到的AK.
百度API所需權限?
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> ?
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> ?
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> ?
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> ?
<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.CHANGE_WIFI_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" /> ?
<uses-permission android:name="android.permission.BROADCAST_STICKY" /> ?
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> ?
<uses-permission android:name="android.permission.READ_PHONE_STATE" />?
基本是那個就是這些權限了.
在自己的xml文件中加入mapview,
<com.baidu.mapapi.map.MapView ?
? ? ?android:id="@+id/m_mapview" ?
? ? ?android:layout_width="match_parent" ?
? ? ?android:layout_height="match_parent" ?
? ? ?android:clickable="true" />
在Activity中的onCreate方法中,?
? ? private MapView mBaiduMapView = null; ?
@Override ?
protected void onCreate(Bundle savedInstanceState) { ?
? ? super.onCreate(savedInstanceState); ? ??
? ? SDKInitializer.initialize(getApplicationContext()); ?
? ? setContentView(R.layout.activity_main);
? ? initBaiduMap();
}
注意兩點,
1.initialize方法中必須傳入的是ApplicationContext,傳入this,或者MAinActivity.this都會報運行時異常.
2.initialize方法必須寫在setContentView方法前面,新同學也許會寫在后面結果報xml中的錯誤.
private void initBaiduMap(){
? ? mBaiduMapView = (MapView) findViewById(R.id.m_mapview);?
}
寫到這里基本上就可以運行出效果了.
? ? @Override ?
? ? protected void onResume() { ?
? ? ? ? super.onResume(); ?
? ? ? ? mBaiduMapView.onResume(); ?
? ? } ?
? ? @Override ?
? ? protected void onPause() { ?
? ? ? ? super.onPause(); ?
? ? ? ? mBaiduMapView.onPause(); ?
? ? } ?
? ? @Override ?
? ? protected void onDestroy() { ?
? ? ? ? mBaiduMapView.onDestroy(); ?
? ? ? ? mBaiduMapView = null; ?
? ? ? ? super.onDestroy(); ?
? ? }
有的新同學使用AS運行的時候會報錯,我寫出我自己遇到的幾個錯誤.
1.java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform.comjni.map.basemap.JNIBaseMap.Create:()J
這個是由于在AS上我們將.so文件放在了libs文件夾中,在AS中這樣是不行的.我們需要將其放在JniLibs文件夾中,于是有的新同學就自己創建了
JniLibs文件夾結果還是不行,這個時候新同學可以仔細看一下你所創建的JniLibs文件夾和res文件是否一樣,有個金黃色的圓柱行的標志,在右下角.
如果沒有那就對了新同學其實不需要自己添加JniLibs文件夾的.我們所要做的是:
打開項目內部的build.gradle,添加下面的代碼,
sourceSets {
? ? main {
? ? ? ? jniLibs.srcDir 'libs'
? ? }
}
再看一下是否有了JniLibs文件夾.這樣就不會后此錯誤了.
2.也許運行的時候會遇見230錯誤,Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode碼校驗失敗.
這個其實基本上是自己的AK出現了問題,你可以查看自己的SHA1是否正確,申請密鑰時填寫的包名是否完整.

另外有的同學的電腦上有兩個\.android\debug-keystore文件,我就是這樣被坑了的.所有確認一下自己的AS所對應的debug-keystore文件.


今天就寫到這里,后續我還會在繼續使用百度地圖踩踩坑,總結一下為新同學填坑.

版權聲明:本文為博主原創文章,未經博主允許不得轉載。

轉載于:https://my.oschina.net/SunnyTime/blog/520577

總結

以上是生活随笔為你收集整理的Android 百度地图开发(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。