android 百度开发论坛,Android 百度地图开发(一)
現在好多手機應用開發需要使用到百度地圖,在使用百度地圖的過程和遇到的問題整理一下方便以后使用
申請密鑰
使用白度地圖首先需要申請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中添加
android:name="com.baidu.lbsapi.API_KEY"
android:value="AK" />
name就是上面的name不要改變,value是你申請到的AK.
百度API所需權限
基本是那個就是這些權限了.
在自己的xml文件中加入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文件.
今天就寫到這里,后續我還會在繼續使用百度地圖踩踩坑,總結一下為新同學填坑.
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
總結
以上是生活随笔為你收集整理的android 百度开发论坛,Android 百度地图开发(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win7系统电脑开机很慢的优化方法(电脑
- 下一篇: android 编辑9图片,Androi