android mina分析,Android与Mina整合
最近想在自己做的安卓手机应用中加入即时聊天功能,于是想到了用Mina来实现,也是由于自己想着偷懒,借用了官方的example中chat的相关代码,经过一番改造,很快就能在java环境中正常运行了。确认没问题后,将client端代码移到了Android中,但是移植过程中并不顺利,每次都是Java.lang.NoclassDefFoundError,提示java.lang.NoClassDefFoundError: org/apache/mina/core/filterchain/IoFilterEvent,但实际上这个类是存在的,一时间不知道问题出在哪。
源码如下:
public boolean connect(NioSocketConnector connector, SocketAddress address,
boolean useSsl) {
if (session != null && session.isConnected()) {
throw new IllegalStateException(
"Already connected. Disconnect first.");
}
try {
IoFilter LOGGING_FILTER = new LoggingFilter();
IoFilter CODEC_FILTER = new ProtocolCodecFilter(
new TextLineCodecFactory());
connector.getFilterChain().addLast("mdc", new MdcInjectionFilter());
connector.getFilterChain().addLast("codec", CODEC_FILTER);
connector.getFilterChain().addLast("logger", LOGGING_FILTER);
if (useSsl) {
SSLContext sslContext = BogusSslContextFactory
.getInstance(false);
SslFilter sslFilter = new SslFilter(sslContext);
sslFilter.setUseClientMode(true);
connector.getFilterChain().addFirst("sslFilter", sslFilter);
}
connector.setHandler(handler);
ConnectFuture future1 = connector.connect(address);
future1.awaitUninterruptibly();
if (!future1.isConnected()) {
return false;
}
session = future1.getSession();
login();
return true;
} catch (Exception e) {
return false;
}
}
原本以为是安卓版本或者Mina版本的问题,结果尝试了几个版本都存在同样的问题,只好慢慢找原因。最终找到原因,只要加入了mdc过滤器,那么就会报这样的错误,所以在Server端和Client端都注掉acceptor.getFilterChain().addLast("mdc", new MdcInjectionFilter())这一行,之后一切恢复正常。
android mina分析,Android与Mina整合相关推荐
- android listview 分析,Android中ListView用法实例分析
本文实例分析了Android中ListView用法.分享给大家供大家参考,具体如下: 通过在Layout中添加ListView Widget可以达到在页面布局具有列表效果的交互页面.在这里通过举例来说 ...
- android 图库分析,Android开发之ImageSwitcher相册功能实例分析
本文实例讲述了Android开发之ImageSwitcher相册功能.分享给大家供大家参考,具体如下: 简介: 1.ImageSwitcher是viewSwitcher的子类,所以ImageSwitc ...
- ios android安全性分析,Android与iOS的对比分析及Android安全技术的设计与实现
摘要: 近年来科技的发展和进步极大的推动了智能手机的飞速发展,手机功能的日益强大使人们对其依赖度显著上升.作为与人们生活密不可分通讯工具,手机安全的重要性不言而喻.现如今,随着手机网络的迅猛发展和形形 ...
- android adb 分析,android adb shell常用脚本分析课件.ppt
android adb shell常用脚本分析课件 ADB概要 Android 调试系统是一个面对客户服务系统,包括三个组成部分: 电脑上运行的客户端. 在你用于开发的机器上作为后台进程运行的服务器. ...
- android apk 分析,Android APK分析工具
1.Apktool 官网:http://ibotpeaches.github.io/Apktool/ 源码: Github地址:https://github.com/iBotPeaches/Apkto ...
- android 按键分析,Android TV开发按键与焦点深入分析(四)
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前面三篇都是从源码的角度分析按键事件.焦点变换的原理,作为应用层的开发者, 分析源码都是带着实际的开发困惑的,要不然谁没 ...
- android latinime分析,Android AOSP输入法(LatinIME)大写判断分析
LatinIME源码地址:https://android.googlesource.com/platform/packages/inputmethods/LatinIME/+/android-5.1. ...
- 【Android 逆向】Android 系统文件分析 ( Android 系统 root 环境准备 | 查看 Android 根目录信息 )
文章目录 一.Android 系统 root 环境准备 二.查看 Android 根目录信息 一.Android 系统 root 环境准备 需要一部 root 过的手机 , 或者直接使用带有 root ...
- android dumpsys 分析,Android开发调试性能分析工具:dumpsys
dumpsys可以用来查看android系统运行过程中的信息状态,如CPU.内存使用.... 例1:查看dumpsys的"子命令" adbshell dumpsys | grep ...
最新文章
- Springboot 日志、配置文件、接口数据如何脱敏?老鸟们都是这样玩的!
- codeforces700B
- signature=54cb1c123491dc1a268a21f3502cccfc,Modelling information routing with noninterference
- oracle 日期格式化_日期格式化跨年bug,是否与你不期而遇?
- You must install signalwire-client-c to build mod_signalwire
- Unity渐进式GPU烘焙找不到显卡
- VARCHART XGantt_v5.1用户手册:如何提供数据(.NET版)
- json格式转csv格式
- tx2 安装 Anaconda
- POJ 3083 dfs + bfs
- 分享三种在Excel表格中自动求和的方法
- word中如何删除最后一页且不影响前面一页的格式
- 暑期训练day14 A. XXXXX
- 3D模型:免费3D模型下载网站推荐
- SVN检出报错,SVN更新时忽略指定文件或文件夹
- Nginx配置支持mp4视频流播放,超简单
- MySQL引擎和区别
- 豆豆趣事[2013年06月]
- 【王喆-推荐系统】评估篇-(task2)推荐模型评估指标
- 读书笔记(python)--图及其算法