我的Hero最近刷了2.3的ROM,原来在2.1下可以使用的凯立德又FC了,估计又是android的API接口改变了,又不兼容了,还好当时在有过解决在1.5时代到2.1凯立德不兼容的经验(这个当时也我第一个发布可以在2.1下使用的凯立德,http://www.hiapk.com/bbs/thread-320372-1-1.html)
现在有好几个版本的凯立德,我试过都不能在2.3的hero(480*320)的分变率下运行
有个什么零售版的,这个可以支持3D路口显示,但是无奈,这个问题不要重,不容易解决,所以我还是选择了最早的哪个版本来攻破,对这个我也比较熟,搞起来方便

改好后的下载地址 http://www.hiapk.com/thread-928729-1-3.html
也说说这个版本凯立德为什么在2.3下又不能正常运行的主要原因,有兴趣的朋友也可以看一下,没兴趣你就跳过吧, 
运行的时候,FC了,通过logcat可以看到,主要原因错误提示是

1 java.lang.nosuchmethoderror ILocationManager.requestLocationUpdates

查了一下资料,发现 2.3的这个函数比2.2的多了两个参数,

代码

所以调用一个不存在的函数,导致了基FC,解决方法就是把里面改成新版的,拿出我的小手术刀apktool,解开了凯立德的apk,找到相应的地方,改过来,就OK了,
首写凯立德是用aidl的方式直接调用 android.location.ILocationManager;接口来实现的,如果用LocationManager来实现就没有这个问题了,就是因为 ILocationManager更改了调用接口才引发了错误!

反编译后可以看到,一个android/location文件夹,这里面就是调用aidl自动生成的文件, 这里的文件全部要换成最新的,有个简单的方法,就是在android 2.3的源代码里找到,location下的几个aidl文件,下载回来,新建一个android工程,把这几个文件,添加到里面,有个地方要注意,就是使用aidl文件,一定要放在相应的包目录下,比如,这几个文件就必须放在android/location这样的目录下,

编译这个空的工程,生成apk,把这个apk 用apktool 也反编译了,可以看到里面也有个android/location文件夹,把这下面的文件全部复制替换到凯立德的下面,这样凯立德调用的也是最新的接口了,然后,找到凯立德中调用 requestLocationUpdates的地方

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
.method public openGPS()I
    .locals 9
    .prologue
    const/4 v8, 0x0
    const/4 v7, -0x1
    .line 1278
    iget-boolean v0, p0, Lcld/navi/mainframe/MainActivity;->mUseGpsEmu:Z
    if-eqz v0, :cond_1
    .line 1280
    invoke-virtual {p0}, Lcld/navi/mainframe/MainActivity;->resumeGpsEmu()V
    :cond_0
    move v0, v8
    .line 1309
    :goto_0
    return v0
    .line 1284
    :cond_1
    iget-object v0, p0, Lcld/navi/mainframe/MainActivity;->mLocationProvider:Ljava/lang/String;
    if-nez v0, :cond_0
    .line 1286
    iget-object v0, p0, Lcld/navi/mainframe/MainActivity;->mLocationManager:Landroid/location/LocationManager;
    iget-object v1, p0, Lcld/navi/mainframe/MainActivity;->mCriteria:Landroid/location/Criteria;
    const/4 v2, 0x1
    invoke-virtual {v0, v1, v2}, Landroid/location/LocationManager;->getBestProvider(Landroid/location/Criteria;Z)Ljava/lang/String;
    move-result-object v0
    iput-object v0, p0, Lcld/navi/mainframe/MainActivity;->mLocationProvider:Ljava/lang/String;
    .line 1288
    iget-object v0, p0, Lcld/navi/mainframe/MainActivity;->mLocationProvider:Ljava/lang/String;
    if-eqz v0, :cond_2
    .line 1292
    :try_start_0
    iget-object v0, p0, Lcld/navi/mainframe/MainActivity;->mILM:Landroid/location/ILocationManager;
    iget-object v1, p0, Lcld/navi/mainframe/MainActivity;->mGPSStatusListener:Lcld/navi/mainframe/MainActivity$NaviGPSStatusListener;
    invoke-interface {v0, v1}, Landroid/location/ILocationManager;->addGpsStatusListener(Landroid/location/IGpsStatusListener;)Z
    .line 1293
    iget-object v0, p0, Lcld/navi/mainframe/MainActivity;->mILM:Landroid/location/ILocationManager;
    iget-object v1, p0, Lcld/navi/mainframe/MainActivity;->mLocationProvider:Ljava/lang/String;
    iget-wide v2, p0, Lcld/navi/mainframe/MainActivity;->mMinTime:J
    iget v4, p0, Lcld/navi/mainframe/MainActivity;->mMinDistance:F
    iget-object v5, p0, Lcld/navi/mainframe/MainActivity;->mLocationListener:Lcld/navi/mainframe/MainActivity$NaviLocationListener;
    invoke-interface/range {v0 .. v5}, Landroid/location/ILocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/ILocationListener;)V
#就是这里,就是因为这里调用了老的函数,所以引发了错误
    :try_end_0
    .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0
    move v0, v8
    .line 1294
    goto :goto_0
    .line 1296
    :catch_0
    move-exception v0
    move-object v6, v0
    .line 1298
    .local v6, e:Landroid/os/RemoteException;
    invoke-virtual {p0}, Lcld/navi/mainframe/MainActivity;->closeGPS()I
    move v0, v7
    .line 1299
    goto :goto_0
    .end local v6           #e:Landroid/os/RemoteException;
    :cond_2
    move v0, v7
    .line 1304
    goto :goto_0
.end method

把它改成以下,添加了几个参数,把参数改成最新的,哪两个新加的参数,一个为null,一个为false,就可以了

代码

硕美科G927 7.1声道 游戏耳机 5.1头戴式 USB电脑耳麦 CF专用正品

本文转自无心之柳.NET博客园博客,原文链接:http://www.cnblogs.com/9527/archive/2011/02/08/1950000.html,如需转载请自行联系原作者

再次解决,android 2.3运行凯立德问题相关推荐

  1. wince车机可以连接电脑吗_想在WinCE车机上运行凯立德实时路况版吗?那就进来看看,让你一键傻瓜式联网...

    如果你的WinCE车机可以联网的话,那就可以运行凯立德C3524这个实时路况的版本,可以使用K云功能,还可以获取实时路况信息,并且可以显示附近的K友信息,让你方便组队出游. 市面上的WinCE车机,大 ...

  2. 安卓凯立德4.2不能运行的解决方法

    更新安卓4.2系统的朋友,如果外卡名称正确,却无法启动凯立德,这个问题是Android 4.2版本更新后将buffer位置更新引起的,那么解决方法也很简单,就是将buffer移回去,方法如下.(此方法 ...

  3. 2013 12 android 凯立德秋季高清旗舰 百度云,【荐】2013.4.12凯立德春季完美安卓手机版+4月23日更新车用高清版...

    转自汤汤汤和gps之家 2013.4.12凯立德安卓自适应全分辨率不漂移完美折腾版C2025-C7E01-2C21J0C .简介 2013.4.12新的凯立德安卓自适应全分辨率内外卡通用不漂移完美 ...

  4. Android版凯立德,可以正常导航,但是无法搜索地名的问题

    问题: 在HTC Desires S上安装Android凯立德1.0后,可以进行正常导航,但是无法按地名查找. 分析: 可能是地图数据不全导致. 解决: 重新下载凯立德C0373-C7340-2431 ...

  5. android凯立德,定制安卓,正版凯立德导航_凯立德行车一体机_GPS评测-中关村在线...

    定制化安卓系统,不卡顿 凯立德M320没有使用WINCE系统,而是内置操作体验更为出色,贴近我们操作习惯的安卓智能操作系统,为了避免应用扩展带来的硬件问题,凯立德M320将Android 4.4进行了 ...

  6. 2013 12 android 凯立德秋季高清旗舰 百度云,凯立德导航常用工具软件(2013.4.12更新下载链接)...

    本帖最后由 xinc 于 2013-4-12 10:59 编辑 凯立德导航常用工具软件,建议下载备用,全部软件无密码,以前找这些软件还真费了点事,现在分享给GPSHK的朋友. 这些软件都比较简单,很容 ...

  7. [凯立德]2014秋季版3321J0L(SP2)Android版

    版本特点: [完美全屏][内外卡兼容][3D旗舰][秒定满星][实时路况][来电锁屏不黑屏][重力旋转][地名联想][V5.0主程序][11月电子眼][最新秋季图资][封闭道路更新][去除电台提示][ ...

  8. 凯立德手机导航(家园版) v5.3 for android,凯立德手机导航(家园版)android平台

    感谢您阅读凯立德手机导航产品下载安装教程,请根据以下步骤进行操作.下载安装过程完成后,您将体验到更为专业的凯立德导航服务. 安装前请认真阅读以下文字: 1.为了减少导航产品所占容量,本导航产品分主程序 ...

  9. [EVO 3D GPS导航] 完美解决凯立德搜不到星问题

    具体:打开菜单---设置----我的位置-----将第一个(用无线网络或WALDN确定我的位置)这里的钩删掉,退出,启动凯立德,10秒左右就可以搜星,定位. 注明:关闭用无线网络和WALDN定位我的位 ...

最新文章

  1. ffmpeg java linux水印,Linux环境用FFmpeg给视频加水印详细步骤
  2. SQL与NoSQL区别-存储方式
  3. select 下拉菜单Option对象使用add(elements,index)方法动态添加
  4. Tomcat 原理篇
  5. BZOJ-2705-Longge的游戏-SDOI2012-欧拉函数
  6. python format
  7. python文本框清空_用Python制作mini翻译器
  8. 只要200行JavaScript代码,就能把特斯拉汽车带到您身边
  9. Knative Eventing 中 Channel 如何注入默认 Provisioner
  10. 达梦工作笔记-使用达梦客户端创建用户并授予权限
  11. 余承东谈华为6G:正在研发,还需要10年时间
  12. 环保公益PSD分层海报,小景合成美好世界
  13. 如何关闭Visual Studio Development Server
  14. Linux操作系统使用基础04:文件与目录管理
  15. cisco 三层交换机作DHCP服务器的配置
  16. c++14 0 名字空间和条件编译
  17. MySQL 和 MySQL Workbench图形化安装教程
  18. 高效记忆/形象记忆(07)110数字编码表 11-20
  19. Linux的strings命令_拔剑-浆糊的传说_新浪博客
  20. 让老板虎躯一震的前端技术,KPI杀手

热门文章

  1. 且来玩一玩动态代理(极深度版本)
  2. [remote rejected] master->master (unpacker error)
  3. 怀化有哪些计算机职业中学,怀化市普通高中、职业学校名单
  4. PE格式系列_0x03:输入表原理+IAT填充流程
  5. 基于带有信息熵和联合矢量的LBF主动轮廓模型的PET-CT成像中对静脉血管肺结节分割 (笔记四)
  6. iPhone通讯录如何完整导入到新手机
  7. python 立体图像_Anaglyph - 立体图像
  8. 金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数(修正虚仓不能保存)...
  9. C#实现生成(条码/二维码)
  10. Verilog实现拨码开关控制数码管显示——FPGA