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

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

不过我比较有空,又爱折腾,最后是自己到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);


完毕。

发布在:[url]http://auzll.iteye.com[/url]

更多相关文章

  1. 箭头函数的基础使用
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. [Android(安卓)Studio / NDK] 如何使用javah生成.h文件
  6. android MultiDex multiDex原理(一)
  7. 【Android开发基础】应用界面主题Theme使用方法
  8. Android中使用animation的方法
  9. AppCompat v21 — Android(安卓)5.0之前版本设备的Material Desi

随机推荐

  1. android wifi
  2. binder编译error
  3. Android(安卓)5.1 API 22 所有sdk文件下
  4. Android(安卓)ListView用法(1),不用ListAc
  5. Android(安卓)Timer编写方式
  6. 2011.07.04——— android activity切换
  7. sssssssssssssss
  8. Spring
  9. Android(安卓)ListView下拉刷新 Demo
  10. android 自定义checkbox大小和图片[已验