`

[简略记录]android中使用javamail的问题

阅读更多
在android中使用标准的javamail类库时,会报NoClassDefFoundError之类的错误,根源主要是android is not java,标准javamail中使用的部分sun.*等类库在android运行环境中是没有的。

网友们提供的解决办法就是使用https://code.google.com/p/javamail-android这个项目,它替换了标准实现里面依赖的一些类库。当然,你也还可以参考一下https://github.com/ruiaraujo/javamail_android这个项目。

不过我比较有空,又爱折腾,最后是自己到kenai.com找了javamail 1.5的源码,各种折腾一番之后重新打包一番再使用。

注意啦,使用的过程,如果有multipart messages的问题,还需要自己做些兼容(把它写在static方法里面运行一次就好了):
MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("image/gif;;  x-java-content-handler=com.sun.mail.handlers.image_gif");
mc.addMailcap("image/jpeg;; x-java-content-handler=com.sun.mail.handlers.image_jpeg");
mc.addMailcap("image/png;;  x-java-content-handler=com.sun.mail.handlers.image_png");
CommandMap.setDefaultCommandMap(mc);


完毕。

发布在:http://auzll.iteye.com
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics