百度地图开发的时候遇到的问题(二)

Android 的 libs文件夹下 armeabi 和 armeabi-v7a的差别,导致百度地图的定位不执行定位回调函数的问题

关于开发当中遇到的这个第二个问题,我表示已经到了麻木的状态,我指的是因为这个问题困扰了我至少两天的时间,当我发现了导致定位失败的原因过后,我已经麻木了,没有了解决问题的兴奋感~~~~~~~~~~~~~~

还是回到正文吧,我在开发一个涉及到定位的项目,当我单独写了定位的demo的时候,完全正常,心里想着,直接把这个代码块拖到工程里面就OK了(当然是为工程申请新的百度mapkey),两天之前我也确实是这样做的,但是完全没有达到我想要的效果,定位没有实现,地图倒是能够正常显示的,于是就开始了解决问题的探索,从mainfest.xml的配置开始检查起,什么服务有没有开启,权限有没有添加完全~~~~~~~~~但如你所知,这些都不是!中间找问题的过程太坑爹了,因为在原来的demo里面是完全能够正常运行的,但是拿过来就仅仅是换了个位置,为什么就不能够运行了呢,我实在找不到原因,各种论坛各种问,也还是没发现,就这样过了两天,今天下午在我准备吃饭打算晚上继续纠结的时候,终于仔细的看了一下logcat 这下子才发现了问题的线索,

以下是一部分被我一直忽略的异常打印:

原来定位的.so文件更本就没有load成功,怎么会执行定位的回调函数public class MyLocationListener implements BDLocationListener{~~~~~~~}呢???

但是为什么他没有执行呢? 各种配置也搞定了,而且服务也申明了???

那我只能看libs当中.so文件的存储位置了,结果我认真看了后发现,原来的demo工程的libs文件夹下面是这样子的:

意思只有一个armeabi子文件夹,然后所有的.so文件也是放到这个里面的,但是我又看了工程里面的libs文件夹下面是这样子的:

唯一的问题出错地方定位在了这里:.so文件放错了位置!!!! 和我的手机cpu不匹配,导致不能够读取到定位的.so文件,接下来说说armeabi 、armeabi-a7v、x86、mips

这个几个文件夹的关系和差别:转(http://blog.csdn.net/duqiuke/article/details/8183549)

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。
	什么是EABI?   
	Embedded application binary interface, 即嵌入式应用二进制接口,是描述可连接目标代码,库目标代码,可执行文件影像,如何连接,执行和调试,以及目标代码生成过程,和c, c++语言接口的规范,是编译连接工具的基础规范,也是研究它们工作原理的基础,可惜arm的EABI迄今为止没有完全订好。作为EABI的组成部分有过程调用规范,可执行文件格式规范,c/c++ ABI规范和调试格式规范。   EABI ,说的是这样的一种新的系统调用方式

在我们android APK的根目录有一个 libs文件夹,此文件夹下包含了armeabi 和armeabi-v7a两个文件夹,我们的c代码编译成的本地库(各种.so)就会放在这两个文件夹其中的一个。那armeabi-v7a 与 armeabi有什么区别,都是什么意思呢?

armeabi和armeabi-v7a是表示cpu的类型,我们知道一般的手机或平板都是用arm的cpu(mips的就悲催的被忽视了),不同的cpu的特性不一样,armeabi就是针对普通的或旧的arm cpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm cpu。

在android.mk里可配置以下宏:

TARGET_CPU_API := armeabi

APP_ABI := armeabi

当你编译时出现一些链接动态库的undefine错误,或你的apk运行时出现装载.so动态库错误时,不妨看一下这个cpu类型的配置是否有误

这里也介绍了相关的信息:http://www.th7.cn/Program/Android/201304/134297.shtml

总之问题按照上面的方式解决了,纠结了两天的一个问题算是放下了!

时间: 2024-10-10 00:41:14

百度地图开发的时候遇到的问题(二)的相关文章

Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图

标签: Android百度地图API Key  分类: Android 百度地图开发(2)  最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地图入手,其实他们的用法都差不多,本篇文章就带领大家在自己的Android项目中加入百度地图的功能,接下来我会写一系列关于百度地图的文章,欢迎大家到时候关注!   一 申请API key 在使用百度地图之前,我们必须去申请一个百度地图的API key,申请地址http://lbsyun.baidu.com/a

android 百度地图开发实例(转载)

因为在我的寝室google基站定位返回的数据总是为空,所以换成百度地图,发现百度地图开发起来非常方便,提供了许多有用的工具,地图的加载速度也比google地图快许多. 为了加强记忆,写一点android 百度地图开发常用的方法. 1初始化 MapManager mBMapMan = new BMapManager(this);boolean isSuccess = mBMapMan.init(this.mStrKey, new MyGeneralListener()); isSuccess 的值

[安卓][地图] 1、高德或百度地图开发第一步(高手跳过)

>_<" 开发地图应用必须用地图供应商提供的API,这里我用了百度地图和高德地图,其流程基本上完全相似.关键点有三个: 一.申请KEY 二.下载提供商提供的API等资源 三.在工程里加载库 >_<" 具体详细过程可以参看他们的开发指南: 百度地图开发指南:http://developer.baidu.com/map/index.php?title=android-locsdk 高德地图开发指南:http://lbs.amap.com/api/android-sd

Android studio 百度地图开发(5)查询周边服务(加油站)

email:[email protected] 开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0. 百度地图应用(1):Android studio 百度地图开发(1)配置工程.显示地图 百度地图应用(2):Android studio 百度地图开发(2)地图定位 百度地图应用(3):Android studio 百度地图开发(3)地图导航 百度地图应用(4):Android studio 百度地图开发(4)触摸选点

百度地图开发(二)之添加覆盖物 + 地理编码和反地理编码

之前写过一篇关于百度地图开发的blog,主要介绍了百度地图的基本地图的显示. 详见:Android百度地图开发(一)之初体验 下面来看一下地图上覆盖物的添加,以及地理编码和反地理编码. 添加覆盖物 在地图上添加覆盖物,一般需要以下几个步骤: 1. 定义坐标点,有可能是一个,有可能是多个(比如:多边形覆盖物). 2. 构造OverlayOptions(地图覆盖物选型基类). 3. 在地图上添加覆盖物. 4. 添加相应的监听事件. 在API中可以看到,BaiDuMap类中有一个方法: 这个方法就是用

[android] 百度地图开发 (三).定位当前位置及getLastKnownLocation获取location总为空问题

       前一篇百度地图开发讲述"(二).定位城市位置和城市POI搜索",主要通过监听对象MKSearchListener类实现城市兴趣点POI(Point of Interest)搜索.该篇讲述定位当前自己的位置及使用getLastKnownLocation获取location总时为空值的问题. 一. 定位当前位置的原理及实现       定位当前位置可以通过LBS(Location Based Service,基于位置的服务),主要工作原理是利用无线网络Network或GPS定

[android] 百度地图开发 (二).定位城市位置和城市POI搜索

一. 百度地图城市定位和POI搜索知识       上一篇文章"百度地图开发(一)"中讲述了如何申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述如何定位城市位置.定位自己的位置和进行城市兴趣点POI(Point of Interest)搜索.那么如何在百度地图上定位某一个位置呢?       通过类GeoPoint可以定义经纬度,它存放着纬度值和经度值,通过getLastKnownLocation()方法可以获取Location对象,再定位经纬度设置其为地图中心即可显示当

Android 百度地图开发之一(Hello BaiDu Map)

之前也接触过百度地图的开发,但那是在网上找的案例或代码,而且是比较老的版本.打算重新学习一下百度地图的开发. 本次使用的百度地图的版本是 Android SDK v3.0.0 本篇文章主要讲述百度地图开发的准备和地图的成功显示即可. 首先建议大家先申请注册一个百度账号. 申请密钥(要想实现百度地图的相关服务必须申请密钥),网址:http://lbsyun.baidu.com/apiconsole/key 需要注意的是:应用名称不要重复或无效,安全码的输入详情请查看:http://develope

android百度地图开发之自动定位所在位置与固定位置进行驾车,步行,公交路线搜索

最近跟着百度地图API学地图开发,先是学了路径搜索,对于已知坐标的两点进行驾车.公交.步行三种路径的搜索(公交路径运行没效果,待学习中),后来又 学了定位功能,能够获取到自己所在位置的经纬度,但当将两者合起来先自动获取自己所在位置的经纬度然后与固定地点进行路径搜索时却弄不出来了,因为刚开始 写的两者在两个类中总是取不到经纬度值,后来将两者写到同一个类中去了,终于取到经纬度值了,也运行出来了.需要 在 BDLocationListener的onReceiveLocation里获取到经纬度值,因为已

记录我在百度地图开发和ArcGIS for Android开发时出现的一些错误及解决方案(后续更新)

[1]The import com.baidu.mapapi.map.Geometry conflicts with a type defined in the same file 解决:百度api包下的Geometry和某个类名相冲突,将类名换成另外的名字,不要和百度相关类里面的类名相同 [2]java.lang.ClassCastException: 解决:类型转换错误.查看Test_Geometry项目的Mainfest.xml清单文件,在<applicaiton>标签里面少了对Myap