本人不是专业的android开发者,最近有个项目要求用android开发一个控制平板电脑的程序,之前我们有mina开发的控制客户端,现在要移植到android中,出现了若干问题,现总结下:

1.第三方jar包的使用

如果在Java Build Path中使用Add External JARs这种方式,运行时会有找不到类的错误(我的上面有,如果你没出现,恭喜你),上网查了几种方式,我这边运行通过的方式如下:

在项目中建个lib文件夹,把需要的jar包复制进去,在 Java Build Path中使用 Add JARs ,选择项目下的lib包中的jar文件即可,发布apk文件时会自动打包进去。

网上还有一种方式,在 Java Build Path 中使用 Add Library, 选择 User Libaray -> 新建一个User Libaray的方式,这种我没试,有通过的同志们说下。

本人推荐项目建文件夹的方式。

2. mina包的使用之日志

我使用的是mina2.0.2,如果没有特殊需求,使用mina-core-2.0.2核心包就可以了。

关键点在这里:

mina中使用slf4j作为日志框架(不知道slf4j的同志们请google下), 这个只是一个日志框架,是没有实现的,你需要一个具体的实现,比如说log4j(具体使用方法我就不说了,很简单,实在不知道给我发站内信)。使用mina必须把slf4j的jar包也引入,那么你也要引入一个实现日志的包,在普通客户端开发这个不是问题,但在android中,已经有了一个日志实现,而且配合logcat,其功能是很强大的,那么怎么配合slf4j来使用呢?(ps:slf4j是必须的,mina要用到)

这里就要感谢网络了,我在slf4j的官网居然发现有一个slf4j-android的jar包

http://www.slf4j.org/android/同志们可以去看看,(强烈推荐去看看)下载这个包,引入到项目中,注意啊,这个包是不能和slf4j-api包共存的,我的解决方式是只使用slf4j-android这个包,其余的日志相关的包都删除,(其实别的日志包也没什么用,我们有android提供的日志类),这样mina就不会报日志类找不到的错误了,而且日志都输出到logcat,调试程序也方便。这方面我们要感谢slf4j,如果没有这个实现,mina使用就麻烦了,我能想到的方式就只有更改mina源代码,重新编译了,当然你也可以自己提供日志实现类。

android的日志类中有一个限制,tag不能超过23个字符(你不知道tag,我也不知道该怎么说了...),slf4j也给解决了,官网上面有介绍。(再建议看下官网)

3. mina包的使用之NioSocketConnector

在android2.1中好像没有问题,但在android2.2中会有Bad address family的异常,这个异常是由于IPv6引起的,这个bug已经在http://code.google.com/p/android/issues/detail?id=9431(同志们看看吧),android2.2不支持IPV6,在使用nio 时会有问题,有建议是使用io,可以解决,但我们如果一定要使用nio呢,解决方法如下:

设置系统属性: System.setProperty("java.net.preferIPv6Addresses", "false"); 就这一行解决问题,有同志可能要问,在哪加啊?系统开始的地方加,比如说是service,在onCreate()中启动mina前加上就行,activity中也一样。

写的有些啰嗦啊,我也是android新手,也是写给新手看的,我尽量说的明白点,高手不要喷我,如果还有不明白的地方,站内信联系,也可以加我QQ:287586925. 同时也希望android大牛们把这方面的问题说的清楚点。


出自:http://moyue.iteye.com/blog/1138453

更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. 一款常用的 Squid 日志分析工具
  3. Android(安卓)图片对比(图片相似度)代码
  4. Android(安卓)群英传-第五章:Android(安卓)Scroll 分析
  5. Android之Tab分页标签的实现方法一-----TabActivity和TabHost的
  6. Android(安卓)通过module进行开发
  7. Android(安卓)Intent Scheme URLs攻击
  8. android SQLite 批量插入数据慢的解决方案 (针对于不同的android
  9. 换一种方式理解 Android协程

随机推荐

  1. Android复选框对话框用法实例简析
  2. Android模拟器的使用方法(Linux)
  3. android studio 多渠道打包,调试正式包,bui
  4. Android 设备接入小票打印机 爱宝小票打
  5. Java GC & Android(安卓)GC学习索引
  6. Android 学习琐碎
  7. Android关于looper的几个方法的个人理解
  8. android menu的应用
  9. Android音频开发之AudioRecord录音实现
  10. Android 复习笔记之图解View类的XML属性