最近想在自己做的安卓手机应用中加入即时聊天功能,于是想到了用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整合相关推荐

  1. android listview 分析,Android中ListView用法实例分析

    本文实例分析了Android中ListView用法.分享给大家供大家参考,具体如下: 通过在Layout中添加ListView Widget可以达到在页面布局具有列表效果的交互页面.在这里通过举例来说 ...

  2. android 图库分析,Android开发之ImageSwitcher相册功能实例分析

    本文实例讲述了Android开发之ImageSwitcher相册功能.分享给大家供大家参考,具体如下: 简介: 1.ImageSwitcher是viewSwitcher的子类,所以ImageSwitc ...

  3. ios android安全性分析,Android与iOS的对比分析及Android安全技术的设计与实现

    摘要: 近年来科技的发展和进步极大的推动了智能手机的飞速发展,手机功能的日益强大使人们对其依赖度显著上升.作为与人们生活密不可分通讯工具,手机安全的重要性不言而喻.现如今,随着手机网络的迅猛发展和形形 ...

  4. android adb 分析,android adb shell常用脚本分析课件.ppt

    android adb shell常用脚本分析课件 ADB概要 Android 调试系统是一个面对客户服务系统,包括三个组成部分: 电脑上运行的客户端. 在你用于开发的机器上作为后台进程运行的服务器. ...

  5. android apk 分析,Android APK分析工具

    1.Apktool 官网:http://ibotpeaches.github.io/Apktool/ 源码: Github地址:https://github.com/iBotPeaches/Apkto ...

  6. android 按键分析,Android TV开发按键与焦点深入分析(四)

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前面三篇都是从源码的角度分析按键事件.焦点变换的原理,作为应用层的开发者, 分析源码都是带着实际的开发困惑的,要不然谁没 ...

  7. android latinime分析,Android AOSP输入法(LatinIME)大写判断分析

    LatinIME源码地址:https://android.googlesource.com/platform/packages/inputmethods/LatinIME/+/android-5.1. ...

  8. 【Android 逆向】Android 系统文件分析 ( Android 系统 root 环境准备 | 查看 Android 根目录信息 )

    文章目录 一.Android 系统 root 环境准备 二.查看 Android 根目录信息 一.Android 系统 root 环境准备 需要一部 root 过的手机 , 或者直接使用带有 root ...

  9. android dumpsys 分析,Android开发调试性能分析工具:dumpsys

    dumpsys可以用来查看android系统运行过程中的信息状态,如CPU.内存使用.... 例1:查看dumpsys的"子命令" adbshell dumpsys | grep ...

最新文章

  1. Springboot 日志、配置文件、接口数据如何脱敏?老鸟们都是这样玩的!
  2. codeforces700B
  3. signature=54cb1c123491dc1a268a21f3502cccfc,Modelling information routing with noninterference
  4. oracle 日期格式化_日期格式化跨年bug,是否与你不期而遇?
  5. You must install signalwire-client-c to build mod_signalwire
  6. Unity渐进式GPU烘焙找不到显卡
  7. VARCHART XGantt_v5.1用户手册:如何提供数据(.NET版)
  8. json格式转csv格式
  9. tx2 安装 Anaconda
  10. POJ 3083 dfs + bfs
  11. 分享三种在Excel表格中自动求和的方法
  12. word中如何删除最后一页且不影响前面一页的格式
  13. 暑期训练day14 A. XXXXX
  14. 3D模型:免费3D模型下载网站推荐
  15. SVN检出报错,SVN更新时忽略指定文件或文件夹
  16. Nginx配置支持mp4视频流播放,超简单
  17. MySQL引擎和区别
  18. 豆豆趣事[2013年06月]
  19. 【王喆-推荐系统】评估篇-(task2)推荐模型评估指标
  20. 读书笔记(python)--图及其算法

热门文章

  1. 谈谈你对oracle的认识,对Oracle存储过程的几点认识
  2. vue计算属性computed与监听属性watch的基本使用
  3. 当你不知道今天星期几,不妨在编辑器写下这段代码
  4. 问题:三元向量的比较
  5. sklearn中eof报错_sklearn中的数据预处理和特征工程
  6. 详细介绍jQuery.outerWidth() 函数具体用法
  7. jquery简介 each遍历 prop attr
  8. input上传文件个数控制
  9. 皮肤可配置化:变量、样式分离
  10. css之absolute