现象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)); }
相关推荐
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped g++/gcc都不能编译了,一直抱ld的问题。网上找了很多方法都不行,弄了好久终于搞定了
运行UG提示Fatal error detected unable to continue的解决方法
最近遇到了app在设备上反复挂掉的问题。log如下: 2020-03-07 13:20:24.814 16858-16858/? E/SharedPreferencesImpl: Couldn't create directory for SharedPreferences file /data/user/0/...
编译时遇到以下报错:app:lintVitalRelease[Fatal Error] :43:105: 与元素类型 "item" 相关联的 "name" 属性值不能包含 '字符。 Could not read /Users/panxin/Library/Android/sdk/platform-tools/api/annotations....
编译时如果遇到以下报错:app:lintVitalRelease[Fatal Error] :43:105: 与元素类型 "item" 相关联的 "name" 属性值不能包含 '字符。 Could not read /Users/panxin/Library/Android/sdk/platform-tools/api/...
有些朋友新配置的环境或自己新写的程序运行时会碰到fatal error: Allowed memory size of 134217728 bytes exhausted错误,这种问题一个是程序写得不好导致的,另一个是环境配置不好也会出现,像php5.1.27+apache2.2.3...
编译时如果遇到以下报错:app:lintVitalRelease[Fatal Error] :43:105: 与元素类型 "item" 相关联的 "name" 属性值不能包含 '字符。 Could not read /Users/panxin/Library/Android/sdk/platform-tools/api/...
1.双击无法打开 cas 或者路径出现乱码; 2.读入网格时,error:File haswrong dimensions(2) 3.the use of axis boundary conditions is not ...10.fluent received a fatal signal (SEGMENTATION VIOLATION) 11.……
屏幕上显示: Fatal exception:panic in 5 seconds kernel panic - not ...这类问题的解决办法就是先查看错误代码中的信息,找到错误所指向的硬件,将其禁用。系统启动后,安装好相应的驱动,再启用该硬件即可。
某日在调试一个win上的php生产环境时,一段php代码返回了错误: Fatal error: Class ‘COM’ not found in XXXXXXXXX 没发现 COM 类,php代码主要是调用一些系统的信息,初想应该是php没配置好,在stackoverflow找到...
用于解决,Android构建APk时报错: app:lintVitalRelease[Fatal Error] :3:214: 与元素类型 “item” 相关联的 “name” 属性值不能包含 ‘<’ 字符。 Could not read /Users/panxin/Library/Android/sdk/platform-...
can't read framebuffer pid=14444, uid=1010这个问题,紧接着就出现了Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 14444 (droid.ScreenCap)这个问题,不知道是什么原因?希望能够解答,谢谢!...
解决PADS 9.5中文语言下修改零件标号提示“发生严重的运行时错误”并退出的问 题
php中连接mysql时出现Fatal error Call to undefined function mysql_connect() 解决方法
18年7月更新,清华镜像,完美解决 Yocto,Android fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle 错误,绕开GFW
单机搭建Android(解决 fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle fatal: error [Errno 101] Network is unreachable ),具体操作请阅readme.txt
解决报错LINK : fatal error LNK1000补丁 返回错误:LINK : fatal error LNK1000: Internal error during IncrBuildImage
1.没有定义的有效CPU 2.No such file or directory 3.数组默认只输入第一位[0] 4.参数无法识别 5.单元测试需要修改内容后环境改变,无法编译 6.没有这样的文件或目录 ...12.当测试用例.h大量定义有问题
最近做的程序中涉及到的循环比较多且处理的情况较复杂,在运行程序时出现执行超时提示如下:Fatal error: Maximum execution time of 30 seconds exceeded in D:phpAppServwwwsum3test.php on line 3通过在网上搜索...