Android studio百度地图SDK开发 2020最新超详细的Android 百度地图开发讲解(1) SDK开发的下载及引入,基本配置和基本地图显示,以及配置阶段常见问题分析,和

百度地图开发(1)

下载百度地图SDK

下载地址: http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download
选择产品下载中的自定义下载。 再根据需求下载需要的开发资源,如果不知道选啥,可以把能选的选了,也可以按照我勾选的来
开发包
有的时候下载完成后可能存在无法解压的情况,这算是百度地图开发的一大坑,之前我连续几次遇到这种情况。这里附上我用的包。
百度云链接:链接:https://pan.baidu.com/s/1qkrnwGtKmg9A69fDv4Ygyw
提取码:rvij

下载完后文件如图,直接解压至当前文件夹
开发包文件
解压后:
开发包解压后的文件
打开readme.txt文件可以查看当前下载开发包包含的内容。
然后也将BaiduNavi_AndroidSDK.zip解压到当前文件夹,成功后如图(圈出的为解压后新增的文件):
BaiduNavi_AndroidSDK.zip解压后的文件
打开BaiduNavi_AndroidSDK文件夹,可以看到一些重要的aar文件,jar包和so库

将资源包添加到Android studio项目中

第一步,添加jar包和so库
  1. 将百度地图SDK中的jar包复制到工程目录下的libs文件夹目录下
    需要导入的jar包如下:
    第一个jar包
    注意这个jar包是第一次解压后的libs文件下
    第二批jar包
    这些jar包是BaiduNavi_AndroidSDK.zip解压后的BaiduNavi_AndroidSDK->libs目录下的jar包,都复制到Android studio项目的app->libs目录下。

Copy时弹出下框,直接点确定
拷贝jar包时弹窗
全部添加后:
jar包添加完后
2. 随便选一个jar包,右键->add as library->确定,add后出现如下则表示添加成功,注意jar包左边要有小三角
Add As Library
add成功后如图:
add成功后

  1. 在app->src->main目录下创建一个jniLibs文件夹
    在这里插入图片描述
    创建jniLibs文件
    然后将刚才下载的SDK包解压后文件libs目录下的 **arm64-v8a armeabi armeabi-v7a x86 x86_64 **文件全部拷贝到jniLibs文件下,添加成功后如图:
    jniLibs文件中添加成功后
    将SDK包解压后的assets文件也拷贝到main目录下,如图:
    assets文件拷贝后
第二步 添加NaviTts.aar和onsdk_all.aar

导航SDK自带TTS能力已经打包为一个独立的aar,命名为NaviTts.aar,可以将其以aar module引入集成APP project,引入后,可以利用导航SDK提供的TTS接口进行初始化。
导航SDK核心已经打包为一个独立的aar,命名为onsdk_all.aar,可以将其以aar module引入集成APP project,引入后,即可引用导航SDK相关类进行开发。
所以这两个包是非常重要的。引入步骤如下:
1. 将NaviTts.aar文件复制到libs文件目录下
打开BaiduNavi_AndroidSDK,可以看到两个aar文件。拷贝到libs后如图:
NaviTts.aar添加到libs中
接下来按照图片操作:
Project Structure
步骤二
步骤三
步骤三
步骤四
步骤五
到这一步后等待一下下
步骤六
要是app中一时没有NaviTts,可以在All Modules中找到,不过等一会在app中也会有了。Apply后如下,则表示成功:
步骤七
用同样的步骤将onsdk_all.aar引入,引入成功后如图:
成功后
成功后

第三步 调试检验结果

到这一步可以先用模拟器调试一下,可能会报如下错误:
错误1
此时需要把galaxy_lite_lbs_v2.3.jar删除
需要删除galaxy_lite_lbs_v2.3.jar
右键选择Delete,会显示如下图提醒,点击Do Refactor。
在这里插入图片描述
会出现上图是因为我们在build.gradle中implement了这个jar包,所以需要将build.gradle中的一起删,如图:
在这里插入图片描述
删除后再次调试,此时还是报错。这是因为有几个jar包冲突了,需要把冲突的jar包删去。报错如图:
报错提示
可见是图中的三个包冲突,直接删去即可,删完后如图:
删除冲突包后
此时再运行调试,依旧报错,但这是因为没有写入调用的代码。所以暂时不用管,接着往下做。

基本地图显示

步骤一 在AndroidManifest.xml中配置开发密钥AK和权限

打开AndroidManifest.xml,在< application >中加入如下代码配置开发密钥(AK):

    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" />  

加入后如图:
加入开发密钥AK
value值开发者key在百度地图开放平台中获取http://lbsyun.baidu.com/apiconsole/key
在这里插入图片描述
然后在AndroidManifest.xml中加入如下权限:

<!--    获取设备网络状态,禁用后无法获取网络状态-->
    <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" />
<!--    允许sd卡写权限,需写入地图数据,禁用后无法显示地图-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--    这个权限用于进行网络定位-->
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!--    这个权限用于访问GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--    获取统计数据-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--    使用步行AR导航,配置Camera权限-->
    <uses-permission android:name="android.permission.CAMERA" />
<!--    程序在手机屏幕关闭后后台进程仍然运行-->
    <uses-permission android:name="android.permission.WAKE_LOCK" />

加入后如图:
加入权限后

步骤二 在布局文件中加入百度地图控件

需要在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_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintHorizontal_bias="1.0"/>

加入后如图:
加入百度地图控件

步骤三 在MainActivity中加入如下代码:
public class MainActivity extends AppCompatActivity{
private MapView mMapView = null;
    private BaiduMap mBaiduMap = null;
    private Context context;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_main);
        SDKInitializer.setCoordType(CoordType.BD09LL);
        this.context = this;
        mMapView = (MapView) findViewById(R.id.bmapView);
        //获取地图控件引用
        mBaiduMap = mMapView.getMap();
    }
    protected void onStart() {
        super.onStart();
    }
    @Override
    protected void onResume() {
        super.onResume();
        mMapView.onResume();
    }
    @Override
    protected void onPause() {
        super.onPause();
        mMapView.onPause();
    }
    @Override
    protected void onStop() {
        super.onStop();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        mBaiduMap.setMyLocationEnabled(false);
        mMapView.onDestroy();
        mMapView = null;
    }
    }

加入后如图:
加入主代码后

步骤四 对build.gradle文件做如下修改

在app目录下的build.gradle文件中加入如下:

multiDexEnabled true

加入后如图:
加入后

最后 运行调试

到此,所有配置都已完毕,点击运行调试程序,一般不会报错,运行结果如下:
运行结果

  • 13
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值