AndroidStudio接入百度地图SDK(暂不包括定位)
以下会有很多截图,有些人可能觉得很多截图没有必要或者只说下流程步骤怎么写就可以了,因为我在查阅文档时文档只说明了如何操作,并没有告诉我这个文件在哪…而我又不熟悉Androidstudio,导致有的时候文件找不着或者要找很长时间,索性我就直接每个都截图来说明一下,避免踩坑
1.新建一个Androidstudio工程(以下简称AS),过程略
2.下载官方SDKDemo Android 地图 SDK
3.打开AS Project,找到libs文件夹
4.将下载的百度地图SDK解压,找到如图jar包,复制该jar包,我的路径是
( E:\Chrome下载\BaiduMap_AndroidSDK_v6.0.0_Sample\BaiduMap_AndroidSDK_v6.0.0_Sample\BaiduMap_AndroidSDK_v6.0.0_Sample\BaiduMap_AndroidSDK_v6.0.0_Sample\BaiduMapSDK_BikeNavi_AS_Demo\libs),根据你放的文件路径不改变,但是相对路径应该还是一样的
5.将jar包放到libs文件夹下,刚刚已经复制了jar包,现在选中libs文件夹粘贴
粘贴完这样
6.将.so文件也复制到该文件夹下,步骤同jar包(.so文件如下)
完成之后这样
7.在app目录下的build.gradle文件中android块中配置sourceSets标签
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
8.选中jar包,右键
完成之后应该会看到build,gradle中出现这行说明
9.应用混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
依然是build,gradle文件中,找到release代码块,添加这行代码(如果已经生成不用添加)
10.编写混淆文件,打开app目录下的proguard-rules.pro文件,添加如下代码
-keep class com.baidu.** {*;}
-keep class mapsdkvi.com.** {*;}
-dontwarn com.baidu.**
(以上方法在百度地图官方文档可查到)
11.获取**并加入到配置文件
获取** 创建应用 需要百度账号,没有的话注册一个,注册过程略,注册完可以查看应用
创建完之后可以看到秘钥AK,找到AndroidManifest.xml配置文件
将秘钥复制到 android:value(注:如果AK填写错误或者没有填写可能会出现地图只有网格没有内容)
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="此处放AK码" />
<!-- 加入** -->
12.添加API所需权限 可参考官方文档 Hello BaiduMap
<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.CAMERA" />
//使用步行AR导航,配置Camera权限
该代码放在AndroidManifest.xml配置文件,在标签之外(注意)
13.在布局文件中添加百度地图的组件
<com.baidu.mapapi.map.MapView
android:id="@+id/mmapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true">
</com.baidu.mapapi.map.MapView>
打开activity_main.xml,切换到Text界面将代码放入
如果有报错,则Alt+Enter选择第一个
14.打开MainActivity.java重写生命周期
package com.test.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.MapView;
public class MainActivity extends AppCompatActivity {
private MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
mMapView = findViewById(R.id.mmapview);
}
@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();
}
}
MainActivity.java文件在这
到这就可以在手机上显示出地图了,目前也仅可以显示地图,如需地位等还要其他的操作
这个截图是我之前跑通的截图,如果是当前项目左上角的名字会显示当前的包名
以上内容为我查阅官方文档及其他博客整理出来的能跑通的流程,其中有些步骤是可以用另外的方法,我只选取 了我用的方法记录,如有错误欢迎指正