使用MINA编写服务器端和android客户端软件常常会遇到各种问题
1.出现形如下的错误提示
java.lang.NoClassDefFoundError: org.apache.mina.transport.socket.nio.NioSocketConnector
这个问题常常见于安装到手机或者模拟器中出现,使用java客户端在电脑上测试没有该问题,这是链接库出了问题,需要按以下步骤安装mina库。
在android工程下新建文件夹Libs或者lib,在lib上右键use as source folder(这个很重要),将mina-core.jar,slf4j-android.jar放到lib下,右键这两个jar,选择add to buildpath
2. org.apache.harmony.nio.internal.SelectorImpl.wakeup(SelectorImpl.java:418)
可能是资源冲突,过一会儿再试试,也可能是创建接连失败,请查看连接代码,包括IP地址和端口是否正确
3.运行时出现slf4j错误,java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder这是因为mina中使用slf4j作为日志框架(不知道slf4j的同志们请google下),
下载了导入进去就行了,
4.形如Java.net.SocketExcetion:Socket failed:错误,缺少权限
在AndroidManifest.xml中添加如下代码:<uses-permission android:name="android.permission.INTERNET" />
5形如android.os.NetworkOnMainThreadException
android新版本中禁止在主线程做耗时的操作,以防止阻塞主线程,把代码放入
new Thread() {
public void run() {
}
}
}.start();
6 形如java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
slf4j版本不匹配引起,常见于老资源或者老源码配置最新库的情况下
7形如
java.lang.System.setProperty("java.net.preferIPv6Addresses", "false");
8 服务器发生异常:java.lang.NoSuchMethodError: java.lang.String.
一般是编码工厂有错,android和linx或者win服务通信,使用的编码工厂会有不小的区别,常常于不同客户端,有些客户端正常,有些不正常,打印解码类或者exceptionCaught方法可以查到编码不匹配的原因。结束符“\n”, "\0","\r\n",编码类型"US-ASCII","UTF-8"服务器客户端不统一,也易出这个问题
9java.nio.charset.MalformedInputException,客户端和服务端的过滤器不一致,多人协作开发容易出这个问题
10java.io.NotSerializableException:,要传递的对象在客户端和服务端要传递的类都要实现接口java.io.Serializable
11在客户端使用命令行向服务器测试数据
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
client.send(scanner.next());
}
http://www.xuebuyuan.com/754364.html