Android开发笔记(七)
-- 开发遇到两个Android Jar 的相关问题
-- 开发遇到两个Android Jar 的相关问题
本文描述两个主要问题,也是最近这几天遇到的头疼过的问题。其实明白了问题之后就显得很简单!两个Android Jar 的相关问题,如下:
# 1. 调用jar包的Service服务出错,找不到服务。
注意:
倘若jar包里面包含有的Activity,Service,BroadcastReceiver,还有程序使用权限的声明等等,需提供给调用程序使用,那么要在调用程序的AndroidManifest.xml再次做声明。
”如果项目中存在使用属性,必须也把属性一起复制到你要使用的项目中,要不然会识别不了。“
> 出现问题
异常:“Unable to start service Intent { cmp=.../...}: not found”
错误日志如:
> 解决方法
1.检查Android工程的Manifest.xml配置文件中是否配置了需要的Service。
2.检查Service是否在application标签内。
错误日志如:
10-08 14:34:10.019: W/ActivityManager(282): Unable to start service Intent { cmp=XLWireless.AdHocNetDemo/XLWireless.WirelessAdhocNetwork.AdhocNetworkService }: not found
... ...
1.检查Android工程的Manifest.xml配置文件中是否配置了需要的Service。
2.检查Service是否在application标签内。
3.如果你的Service和启动的Activity不在同一个包内,需把Service标签中的android:name配置成service类的完全名(全路径)。
4. 注意包名的大小写,包名第一个字母必须小写。这里强烈建议包名小写,虽不同单词不能明显区分但作为包名没关系,无伤大雅。
若全路径且包名为大写(或驼峰式命名的大写开头),则Eclipse运行不起来程序。如(下面错误编写):
<service android:name="Xlwireless.WirelessAdHocNetwork.AdhocNetworkService" android:enabled ="true" />
PS. 以上前三点引用自网上他人的总结,而最后一点乃自身经历的总结,其中困惑不已最后才得以实验得出的结论!
cnblogs 帖子
# 2. 调用百度地图Android三方库,出现异常问题。
异常: “java.lang.UnsatisfiedLinkError: initClass"
> 出现问题
10-10 12:48:52.291: E/AndroidRuntime(18640): java.lang.UnsatisfiedLinkError: initClass
10-10 12:48:52.291: E/AndroidRuntime(18640): at com.baidu.mapapi.Mj.initClass(Native Method)
10-10 12:48:52.291: E/AndroidRuntime(18640): at com.baidu.mapapi.Mj.a(Unknown Source)
10-10 12:48:52.291: E/AndroidRuntime(18640): at com.baidu.mapapi.BMapManager.init(Unknown Source)
10-10 12:48:52.291: E/AndroidRuntime(18640): at xlwireless.deviceutility.XLGPSManager.init(XLGPSManager.java:51)
10-10 12:48:52.291: E/AndroidRuntime(18640): java.lang.UnsatisfiedLinkError: initClass
10-10 12:48:52.291: E/AndroidRuntime(18640): at com.baidu.mapapi.Mj.initClass(Native Method)
10-10 12:48:52.291: E/AndroidRuntime(18640): at com.baidu.mapapi.Mj.a(Unknown Source)
10-10 12:48:52.291: E/AndroidRuntime(18640): at com.baidu.mapapi.BMapManager.init(Unknown Source)
10-10 12:48:52.291: E/AndroidRuntime(18640): at xlwireless.deviceutility.XLGPSManager.init(XLGPSManager.java:51)
> 解决办法
引用一篇某网友的博文。
而我的评论是这样的,如下:
“百度提供的jar和so必须要放到libs而不是lib目录”
百度地图提供Android API第三方库库文件包含有,描述如下:
目录 libs (包含){ baidumapapi.jar 文件夹armeabi(包含 { libBMapApiEngine_v1_3_3.so } } 这样的两个文件,且存在于两级目录。
---
真心不明白,百度开发平台(设计者)为何要这样做,“仅限制使用者需要” 将这样放置jar和so文件(如上libs目录),否则容易出现问题如LZ所说的异常“java.lang.UnsatisfiedLinkError: initClass”,但有时又不出问题的,只是未去继续深究吧,若哪位仁兄得知真相,望告知,谢谢!
百度地图提供Android API第三方库库文件包含有,描述如下:
目录 libs (包含){ baidumapapi.jar 文件夹armeabi(包含 { libBMapApiEngine_v1_3_3.so } } 这样的两个文件,且存在于两级目录。
---
真心不明白,百度开发平台(设计者)为何要这样做,“仅限制使用者需要” 将这样放置jar和so文件(如上libs目录),否则容易出现问题如LZ所说的异常“java.lang.UnsatisfiedLinkError: initClass”,但有时又不出问题的,只是未去继续深究吧,若哪位仁兄得知真相,望告知,谢谢!
--
> 相关链接
(完)
没有评论:
发表评论