现象repro:
1. 第一次运行App,没有问题。
2. 按返回键推出App。
3. 再次运行App,出现如下错误,App无法启动。
4. 再次运行App,App正常启动。
5. 如此往复。
原因:
这个错误发生在App启动,初始化百度地图时。通常是由上次退出App时百度地图的后台Service资源释放不完全造成的。
如果该错误出现在退出App时,则是百度地图相关模块的Destory顺序有问题。
正确初始化/释放时序:
private BMapManager mBMapManager; private MapView mMapView; private MKOfflineMap mapOffline; private MKSearch mapSearch; private Context context; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(Name, "onCreate"); super.onCreate(savedInstanceState); this.context = this.getApplicationContext(); mBMapManager = new BMapManager(getApplication()); mBMapManager.init("your key", null); /*** * 必须在初始化百度地图manager之后才能setContentView * 在官方文档中也有相同描述 ***/ setContentView(R.layout.activity_main); GeoPoint yourLocation = new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)); initBaiduMap(yourLocation); } @Override protected void onDestroy() { Log.i(Name, "onDestroy"); /*** * 必须按此顺序执行destory! * 有使用离线地图的离线地图控制器也要销毁 ***/ mapOffline.destroy(); mMapView.destroy(); mBMapManager.destroy(); super.onDestroy(); } @Override protected void onPause() { Log.i(Name, "onPause"); mMapView.onPause(); mBMapManager.stop(); super.onPause(); } @Override protected void onResume() { Log.i(Name, "onResume"); mMapView.onResume(); mBMapManager.start(); super.onResume(); } private void initBaiduMap(GeoPoint point) { mMapView = (MapView) findViewById(R.id.bmapsView); mMapView.setBuiltInZoomControls(true); MapController mMapController = mMapView.getController(); mapOffline = new MKOfflineMap(); mapOffline.init(mMapController, new MKOfflineMapListener() { @Override public void onGetOfflineMapState(int type, int state) { switch (type) { case MKOfflineMap.TYPE_DOWNLOAD_UPDATE: MKOLUpdateElement update = mapOffline.getUpdateInfo(state); break; case MKOfflineMap.TYPE_NEW_OFFLINE: Log.d("OfflineDemo", String.format("add offlinemap num:%d", state)); break; case MKOfflineMap.TYPE_VER_UPDATE: Log.d("OfflineDemo", String.format("new offlinemap ver")); break; } } }); int num = mapOffline.scan(); System.out.println(">>>offlineMaps: " + num); mMapController.setCenter(point); mMapController.setZoom(12); mapSearch = new MKSearch(); mapSearch.init(mBMapManager, new BaiduMapSearchListener(this, mMapView)); }
相关推荐
最近遇到了app在设备上反复挂掉的问题。log如下: 2020-03-07 13:20:24.814 16858-16858/? E/SharedPreferencesImpl: Couldn't create directory for SharedPreferences file /data/user/0/...
在编程过程中,我们时常会遇到各种编译错误,其中一种比较棘手的错误是"collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped"。这个错误通常发生在尝试使用g++或gcc编译C++或C...
在IT领域,尤其是CAD/CAM软件用户中,遇到“运行UG提示Fatal error detected unable to continue”的问题时,往往会感到困扰。这一错误信息通常出现在尝试启动Unigraphics(简称UG,现称为NX)软件时,意味着系统...
编译时遇到以下报错:app:lintVitalRelease[Fatal Error] :43:105: 与元素类型 "item" 相关联的 "name" 属性值不能包含 '字符。 Could not read /Users/panxin/Library/Android/sdk/platform-tools/api/annotations....
在iOS开发中,使用百度地图SDK进行应用集成是一项常见的任务,尤其当需要为用户提供自定义的定位和导航体验时。本篇文章将详细讲解如何利用百度地图SDK实现自定义的大头针(Annotation)功能,以便在地图上显示具有...
编译时如果遇到以下报错:app:lintVitalRelease[Fatal Error] :43:105: 与元素类型 "item" 相关联的 "name" 属性值不能包含 '字符。 Could not read /Users/panxin/Library/Android/sdk/platform-tools/api/...
在iOS开发中,集成百度地图并实现自定义大头针是一项常见的需求,特别是在构建类似安居客这样的房产应用时。自定义大头针可以提供更丰富的视觉体验和交互功能,使得地图上的标注信息更加直观和易用。下面我们将深入...
### Ubuntu10.10(64位)编译Android2.3源码遇到的问题及解决方案 #### 一、概述 在使用Ubuntu10.10(64位)操作系统尝试编译Android2.3源码的过程中,遇到了一系列错误。这些问题主要与缺少必要的库文件和支持工具...
### Kernel Panic - Not...通过上述步骤,用户不仅解决了眼前的启动问题,也为我们提供了一个宝贵的经验:在面对难以解决的技术难题时,耐心地观察错误信息中的线索,并尝试不同的方法,往往能带来意想不到的解决方案。
编译时如果遇到以下报错:app:lintVitalRelease[Fatal Error] :43:105: 与元素类型 "item" 相关联的 "name" 属性值不能包含 '字符。 Could not read /Users/panxin/Library/Android/sdk/platform-tools/api/...
在使用 Fluent 进行流体动力学仿真时,可能会遇到各种错误和警告,这些错误可能影响计算的稳定性和结果的准确性。以下是一些常见的 Fluent 报错及其解决办法: 1. **双击无法打开 cas 或者路径出现乱码**: - 这个...
主要介绍了php运行提示:Fatal error Allowed memory size内存不足的解决方法,分别针对有服务器管理权限和没有服务器管理权限的情况分析解决方法,是非常实用的技巧,需要的朋友可以参考下
这样,即使该组件在一个进程中遇到未捕获异常导致崩溃,也不会影响到其他运行在不同进程中的组件,从而防止整个应用的退出。 3. **Process.killProcess()**: 这是一个系统级别的方法,用于结束指定的进程。在处理...
### Ubuntu 11安装QQ遇到的问题及解决方法 在Linux发行版Ubuntu 11中安装QQ for Linux可能会遇到一些挑战,尤其是对于初次尝试在Linux环境下使用即时通讯软件的用户来说。本文将详细介绍如何在Ubuntu 11上安装QQ...
在使用Visual Studio 2008 (VS2008) 进行软件开发时,开发者可能会遇到一个棘手的问题,即"fatal error C1853: 预编译头错误"。这个错误通常表示编译器在处理预编译头文件时遇到了不一致或意外的情况,导致编译过程...
这是一个常见的编译错误,原因是编译器在寻找预编译头文件时遇到了不该遇到的文件尾。解决方法是包含正确路径的#include "stdafx.h",或者在*.cpp文件的Setting里面设置,C++选项中的分类precompiled header,选择不...
单机搭建Android(解决 fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle fatal: error [Errno 101] Network is unreachable ),具体操作请阅readme.txt
在PHP开发过程中,可能会遇到“Fatal error Class 'Think' not found in runtime.php”的错误提示,这通常是由于类加载问题导致的。在这个问题中,我们主要关注的是PHP的类自动加载机制以及Linux系统的文件系统特性...
IAR是目前市场上最流行的嵌入式开发工具之一,但是在使用IAR时,经常会遇到各种错误,这些错误可能会导致开发效率降低,甚至导致项目延期。因此,了解IAR常见错误的解决方法非常重要。 1. 序列号错误 fatal Error...
某日在调试一个win上的php生产环境时,一段php代码返回了错误: Fatal error: Class ‘COM’ not found in XXXXXXXXX 没发现 COM 类,php代码主要是调用一些系统的信息,初想应该是php没配置好,在stackoverflow找到...