Android studio引入百度地图包括解决真机闪退问题

  • 引入百度地图方法
    • 申请百度地图key
    • 百度地图SDK下载即配置
    • 完整代码及部分解释
      • MainActivity.java
      • AndroidManifest.xml
      • activity_main.xml
  • 错误情况简介
  • 方法解决
  • 启示与提高

引入百度地图方法

  • B站,Android开发从入门到精通视频里有相应的教学,在这里,将代码贴出,也将相应的包贴出来。

申请百度地图key

百度地图开发平台网址:网址在这里,点击跳转.
点击开发文档,点击左侧获取密钥,前提要登录自己的百度账号,完成登录阶段。创建应用,应用名称随意,选择应用类型为Android SDK,默认全选,包名与自己的工程、模块保持一致即可,发布版SHA1的获取,可以点击as软件右侧的Gradle,如图,双击即可看到自己的sha1值,在此不做展示。提交即可获得自己的key。

百度地图SDK下载即配置

在Andorid地图SDK对应网页点击产品下载,点击自定义下载,勾选:全量定位、基础地图、检索、全景图,在下侧选择JAR的开发包格式,标准开发包然后下载并且解压在一个文件夹当中。如图示。


然后打开AS,将平台模式从Android切换到project,将刚才解压的libs文件夹下所有文件复制粘贴至AS的libs文件夹中,然后选中jar包右键,add as library。在src下的main目录当中创建目录,new directory,创建"jniLibs"文件夹,然后将解压好的libs当中的armeabi文件夹复制粘贴至jniLibs。到此配置工作结束。

完整代码及部分解释

MainActivity.java

package com.example.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;//声明地图组件@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);SDKInitializer.initialize(getApplicationContext());//初始化地图SDK,一定要放在setContentView之前setContentView(R.layout.activity_main);mMapView = (MapView) findViewById(R.id.bmapview);}@Overrideprotected void onResume() {super.onResume();mMapView.onResume();mMapView = null;}@Overrideprotected void onPause() {super.onPause();mMapView.onPause();}@Overrideprotected void onDestroy() {super.onDestroy();mMapView.onDestroy();}
}

该部分需要注意的,需要在调用xml布局文件之前先声明并初始化地图SDK,并在调用xml文件之后指定xml文件当中的百度地图id。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapplication"><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.WAKE_LOCK"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_SETTINGS" /><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="这个部分要写自己申请的key"/><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

这部分需要注意两点,一是需要添加的权限,二是需要在application当中添加meta_data部分,用户需自己注意。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapview"android:layout_width="match_parent"android:layout_height="match_parent"android:clickable="true" /></LinearLayout>

在这块代码当中重点是baidu这个组件,此处的组件id,后端代码要进行调用来使用。

错误情况简介

  • bug病症:可以将app安装在手机上,但是跑软件的时候却会从软件中闪退,持续时间很长,总是没能得到一个很好的解决。
  • found lib armeabi/gnustl_shared.so error
  • found lib armeabi/BaiduMapSDK_base_v7_2_0.so error
  • No implementation found for int com.baidu.mapsdkplatform.comjni.tools.JNITools.initClass
  • 如图所示

方法解决

询问度娘许久时间,发现应该是jar包与so文件不匹配才会出现这个问题。尝试了很多办法,都不能够取得效果。最终找到这个办法能够解决我所出现的问题,现展示如下,两种办法:

  • 第一种,需要修改模块的build gradle,在defaultConfig当中,添加这个SourceSets{main{jniLibs.secDirs = [‘libs’]}},如图
  • 第二种,将拷贝至libs文件当中的文件除了jar包,往jniLibs文件夹也拷贝一份即可。
  • 核心就是需要jniLibs的文件夹下的文件在AS的项目的libs文件夹下都有,jar包除外,这样子可以解决上述问题。
  • 在最开始,我只将jar包导入了libs文件夹下,并没有将其他文件一并导入,发现也会出问题,但全部导入之后,加上修改了build gradle之后便可以成功呈现百度地图如图所示

启示与提高

刚开始遇见问题的时候,心里很添堵,又赶上毕业设计临近中期答辩,自己的进度很少,着急上火,但是即使再着急,只要不按照正确的方法去分析问题出现在了那里,只是一味地沮丧,一味地懊恼为什么按照别人的方法做下来自己就会出问题,永远只是停滞不前。
个人认为,遇到问题的时候,先让自己冷静下来,根据学习内容对照自身是否出现偏差,如果没有出现偏差,根据编译器的日志文件,指定过滤条件去查看错误信息,看自己的出错的原因是什么,联想生活,舌头疼是因为上火,上火是因为作息不规律或者饮食不合理,那么从根源上去解决问题,更正饮食,调理作息,火气一定会慢慢消散的。结合到学习或者代码,出现bug,题目做错肯定是有原因,先溯源,发现是什么问题之后才能着手去解决这个问题。要告诫自己,不仅要每逢大事有静气,更要从容的对待细枝末节的小问题。
我自己身上存在缺陷,在刚开始遇到问题的时候,不想着去寻找错误信息,反而是在百度出现这个状况该如何处理,脑海中毕其功于一役的思想比较固执,总想着我一次性,啪,就可以解决bug,调好程序。一步登天的事要少想,做什么都得一步一个脚印,出现bug不怕,一个一个去找一个一个去改,要知道找bug,改bug的过程就是自己成长的过程。要耐心,要拿出来练字,跑步的耐心去对待学业,万丈高楼,始于垒土。继续加油。

Android studio显示百度地图及闪退问题的解决相关推荐

  1. android 百度地图闪退,Android使用百度地图出现闪退及定位时显示蓝屏问题的解决方法...

    使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 android:name="com.baidu.lbsapi.A ...

  2. android 定位 闪退_Android使用百度地图出现闪退及定位时显示蓝屏问题

    1.Android使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 但是,有些同学会发现,所有配置都是按照官网或者教程上的步 ...

  3. Android Studio调用百度地图(二):实现地图显示后台定位和步行导航

    先看一下运行效果: 实现功能:后台定位+步行导航(可通过长按屏幕自定义终点,起点为定位点) 后台定位即当程序在后台时依旧执行定位功能,步行导航支持30米-50千米范围内的导航 一 导入SDK并配置相关 ...

  4. Android Studio 打开Profiler后App闪退

    Android Studio 打开Profiler后App闪退 环境 Android Studio 4.1.1 Android 10 错误信息: 2020-12-24 16:06:21.870 300 ...

  5. 2019-详细Android Studio开发百度地图(5)—百度地图_导航和TTS语音播报的实现

    百度地图_导航和TTS语音播报的实现 前言 从小白一步步开始,很多资源是很久以前的,而且没有操作配套截图和资源分享.现在本踩过了很多坑,现在开发完成后决定重新写一份教程,希望能借此帮助到许多其他有这方 ...

  6. 2019-详细Android Studio开发百度地图(4)—百度地图_路线规划的实现

    百度地图_路线规划的实现 前言 从小白一步步开始,很多资源是很久以前的,而且没有操作配套截图和资源分享.现在本踩过了很多坑,现在开发完成后决定重新写一份教程,希望能借此帮助到许多其他有这方面需求的人. ...

  7. Android Studio实现百度地图及定位

    文章目录 一.功能需求 二.实现过程 1. 实验环境 2.获取百度开发者KEY 3. 页面设计 4. Java代码实现 三.运行界面展示 四.源码 一.功能需求 根据官方文档,开发百度地图定位APP, ...

  8. 基于android studio的百度地图(放大缩小搜索功能)

    首先我们需要下载百度SDK包 百度网盘提取码1234 这个复制在这里 还有百度官方的代码也已经打好了. 百度网盘 请输入1234 自行导入.直接复制全部java,之后粘贴在工程里面 这是布局 布局.x ...

  9. android include闪退,运行闪退,怎么解决#includestdio.h#includestdlib【神奇海螺吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 运行闪退,怎么解决 #include #include #define error -1 #define ok 1 #define maxsize 10 ...

最新文章

  1. django系列 1 :python+django环境搭建 +mac提示找不到manage.py命令
  2. Python学习笔记(Ⅰ)——Python程序结构与基础语法
  3. PostgreSQL在何处处理 sql查询之二十二
  4. java 隐藏文件_java-如何仅列出jtree中的非隐藏文件和非系...
  5. linux清空文件内容的几种方式与区别
  6. VBA实战技巧精粹012:查找指定目录下的指定文件及Dir函数用法
  7. Leetcode--8
  8. B - C语言实验——整数位
  9. Linux 网络服务之FTP 文件传输
  10. 字节跳动算法工程师总结:java抽象类和接口实验报告
  11. 简单解析三种JAVA调用方式-同步,异步,回调
  12. 一对一关系,一对多关系,多对多关系的简单理解
  13. TCR+fc型svc无功补偿仿真模型有详细资料
  14. 【Pytorch with fastai】第 11 章 :使用 fastai 的中级 API 进行数据处理
  15. 通过Navicat for MySQL导入数据时,日期时间错误问题解决办法
  16. 不让玩游戏的小娃娃随机考试系统
  17. hive 启动报错java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%..
  18. C++很难吗?到底有多难?
  19. 使用WMI provider创建进程
  20. 暴雪魔兽世界用安全令牌送双头犬宠物

热门文章

  1. 三脚架代表人生_如何选择和使用三脚架
  2. 火狐浏览器不兼容event问题
  3. 游戏光枪坐标定位原理及算法
  4. Latex002 | 详细教程:LaTeX 编译器哪个好?——如何在 Visual Studio Code 中全流程编写 LaTeX(上篇)
  5. pycharm连接远程服务器以及踩的坑
  6. 7、8系升9系视频教程
  7. Python简单操作爬取微博热搜榜(表格.xls模式存储)
  8. 中公教育python教师_中公教育的教师水平怎么样?
  9. SIP: From ,Contact, Via 和 Record-Route/Route head字段详解
  10. 3Dmax制作锁模型教程