首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Android2.2的Apache MINA中的NullPointerException

基于Android2.2的Apache MINA中的NullPointerException
EN

Stack Overflow用户
提问于 2012-04-16 20:48:10
回答 1查看 797关注 0票数 1

我正在使用Apache MINA 2.0.4为android开发一个应用程序。它在我测试过的所有版本上都运行良好,但在HTC Desire上运行2.2.2。

客户端设法连接到服务器,但是一旦服务器发送一条消息,我就会得到一个NullPointerException:

代码语言:javascript
复制
04-16 13:45:25.992: E/EXCEPTION(18456): NETWORK
04-16 13:45:25.992: E/EXCEPTION(18456): org.apache.mina.filter.codec.ProtocolDecoderException: java.lang.NullPointerException (Hexdump: 00 00 00 32 AC ED 00 05 73 72 01 00 25 63 6F 6D 2E 62 6F 6C 6C 73 2E 73 68 61 72 65 64 2E 77 77 77 2E 48 69 67 68 4C 65 76 65 6C 4D 65 73 73 61 67 65 78 70 28 70)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:251)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:715)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:668)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:657)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1141)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
04-16 13:45:25.992: E/EXCEPTION(18456):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
04-16 13:45:25.992: E/EXCEPTION(18456):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
04-16 13:45:25.992: E/EXCEPTION(18456):     at java.lang.Thread.run(Thread.java:1102)
04-16 13:45:25.992: E/EXCEPTION(18456): Caused by: java.lang.NullPointerException
04-16 13:45:25.992: E/EXCEPTION(18456):     at java.io.ObjectStreamField.resolve(ObjectStreamField.java:351)
04-16 13:45:25.992: E/EXCEPTION(18456):     at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1863)
04-16 13:45:25.992: E/EXCEPTION(18456):     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:826)
04-16 13:45:25.992: E/EXCEPTION(18456):     at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2066)
04-16 13:45:25.992: E/EXCEPTION(18456):     at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:929)
04-16 13:45:25.992: E/EXCEPTION(18456):     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2285)
04-16 13:45:25.992: E/EXCEPTION(18456):     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2240)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.core.buffer.AbstractIoBuffer.getObject(AbstractIoBuffer.java:2215)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.filter.codec.serialization.ObjectSerializationDecoder.doDecode(ObjectSerializationDecoder.java:92)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.filter.codec.CumulativeProtocolDecoder.decode(CumulativeProtocolDecoder.java:178)
04-16 13:45:25.992: E/EXCEPTION(18456):     at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:241)
04-16 13:45:25.992: E/EXCEPTION(18456):     ... 15 more

我正在使用ObjectSerializationCodecFactory,但找不到哪里出了问题。我曾尝试在Android2.2上使用“常规”Java序列化,并成功了。

以下是连接的代码:

代码语言:javascript
复制
    NioSocketConnector tConnector = new NioSocketConnector();

    tConnector.setConnectTimeoutMillis(CONNECT_TIMEOUT);
    tConnector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));
    tConnector.setHandler(new ClientHandler());

    try{
        ConnectFuture future = tConnector.connect(new InetSocketAddress(HOSTNAME, PORT));
        future.awaitUninterruptibly();
        mSession = future.getSession();
        Globals.hideDialog();
    }catch (RuntimeIoException e){
        Globals.hideDialog();
        Globals.showConnectionErrorDialog("Failed to connect to server");
    }

    // wait until the summation is done
    if(mSession != null)
        mSession.getCloseFuture().awaitUninterruptibly();
    tConnector.dispose();

异常是在调用messageReceived之前在处理程序中捕获的。

任何有关此异常的信息都将不胜感激!

谢谢

EN

Stack Overflow用户

发布于 2012-04-16 20:52:13

我认为ClientHandler()是接口。您需要尝试使用BasicClientHandler()。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10174377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档