【发布时间】:2011-11-23 16:16:10
【问题描述】:
是否有人尝试在 Android 应用中使用 MessagePack?
可能吗?我尝试使用 msgpack-java 的 Jar 并收到以下异常:
Caused by: java.lang.ExceptionInInitializerError
at org.msgpack.Packer.pack(Packer.java:532)
at org.msgpack.MessagePack.pack(MessagePack.java:31)
... 15 more
Caused by: java.lang.ExceptionInInitializerError
at org.msgpack.template.TemplateRegistry.<clinit>(TemplateRegistry.java:38)
... 17 more
Caused by: java.lang.VerifyError: org.msgpack.template.BeansFieldEntryReader
at org.msgpack.template.builder.BeansTemplateBuilder.<init (BeansTemplateBuilder.java:42)
at org.msgpack.template.builder.BuilderSelectorRegistry.initForJava(BuilderSelectorRegistry.java:73)
at org.msgpack.template.builder.BuilderSelectorRegistry.<clinit>(BuilderSelectorRegistry.java:38)
... 18 more
我使用的代码很简单
PrintWriter out = new PrintWriter(socket.getOutputStream());
Message msg = new Message();
msg.body = "asdasdasd";
msg.from = "qwe";
msg.to = "ttt";
byte[] bytes = MessagePack.pack(msg);
out.print(bytes);
out.flush();
我的lib 目录中有javassist.jar、msgpack-0.5.2.jar、slf4j-api-1.6.2.jar 和slf4j-jdk14-1.6.2.jar。
在我的服务器应用程序中,此代码适用于相同的库。
【问题讨论】:
-
这是您获得的完整堆栈跟踪吗? ExceptionInInitializerError 是由加载类期间发生的一些异常引起的,因此必须有其他原因,因为堆栈跟踪中没有发生任何类加载。
-
不,我编辑了我的帖子,所以它几乎是完整的堆栈(使用 java.lang.IllegalStateException 删除的部分:无法执行活动的方法,信息量不大)
-
请发布整个堆栈跟踪
-
我希望这可能会有所帮助,:),github.com/chzyer/msgpack-for-android
标签: java android msgpack messagepack