- AK的获取
登录百度地图开放平台,点击开发文档→Android定位SDK→创建应用→配置SHA1和包名→提交生成AK
创建应用
配置SHA1和包名
通过Android studio获取SHA1
(1)打开Android studio,未下载的可以点击下面链接进行下载和安装,进入Android studio,找到Terminal工具
Android Studio的简易安装和运行hello word程序
输入命令行和密码
命令行:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey(注意目录的选择,否则会出现下面错误)
密码:一般为android
在-keystore后面改为自己debug.keystore的路径,然后输入密码
通过Android studio获取包名
包名以bulid.gradle文件中的applicationID为准
以获取的SHA1和包名填写
点击提交生成AK
- Android Studio配置
(1) 打开或新建一个Android 工程
(2) 下载并添加SDK(jar+so),建议DEMO下载
将下载的文件放在工程libs文件下
(3) 配置bulid.gradle(app)文件,在android{}里添加以下代码,以关联app.libs文件夹
下的.so文件
sourceSets{
main{
jniLibs.srcDir ‘libs’
}
}
然后添加.jar文件依赖
dependencies {
implementation files(‘libs/BaiduLBS_Android.jar’)
}
(4)在AndroidManifest.xml配置文件中的中添加AK
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="AK" >填写自己获取的AK
</meta-data>
(5) 在AndroidManifest.xml中添加定位权限,权限添加在application之外
接着就可以开发一个简单的Hello BaiduMap了
(1) 首先在activity_main.xml文件中添加地图控件
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="0dp"
android:layout_height="0dp"
android:clickable="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
(2) 在MainActivity.java文件的onCreate()方法中加入
SDKInitializer.initialize(getApplicationContext());用来初始化context,需要在setContentView(R.layout.activity_main);语句之前添加,否则会出现闪退
(3) 然后创建地图Activity,管理地图生命周期
public class MainActivity extends Activity {
private MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
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();
}
}
运行程序,得到的结果如下
按住鼠标可以移动地图,双击可以放大(下面是双击的效果)
过程中遇到问题(希望对你们有帮助):
(1)从AndroidManifest.xml查找问题,发现添加单行注释导致问题
解决方法:将//改为头部<!-- ,尾部- ->即可
(2)缺少约束条件
解决方法:在activity_main.xml中点击左下方Design,然后点击上方的Infer Constraints即可
(3)libs文件夹下的 .so 和.jar包来自不同的官方demo中
解决方法:下载下面圈的压缩包,解压将里面的libs文件夹替换AS工程里的libs文件夹,然后点击上面红色字母,按alt+enter就行了。
百度地图开放平台链接