java.lang.NoClassDefFoundError:android中的javax.activation.DataHandler

我正在使用android手机发送电子邮件应用程序。 为此我包含了两个jar文件activation. jar activation. jarmail.jar 。 但是当我运行这个应用程序并尝试发送邮件时,我在LogCat上遇到以下错误。

 java.lang.NoClassDefFoundError: javax.activation.DataHandler 

我是新来的android。 所以我无法弄清楚这个问题。 请帮帮我。 谢谢

Solutions Collecting From Web of "java.lang.NoClassDefFoundError:android中的javax.activation.DataHandler"

有一个Android友好的javamail端口 ,你应该使用。 有三个库,你需要包括在你的应用程序:mail.jar,activation.jar和additionnal.jar(原文如此)。 看起来你错过了激活库依赖的东西,这可能是因为你没有使用这个库的Android端口。

我已经在一个项目中成功地使用了易于使用的Android版本的javamail,而且工作得很好。

JavaMail API参考实现版本1.5.5及更高版本内置了对Android的支持,并包含对OAuth2的支持。

根据文档:

Android不提供Java Compatible运行时,所以不能运行标准的JavaMail发行版。 相反,JavaMail的特殊版本可用于Android。 JavaMail的这个特殊版本依赖于特殊版本的JavaBeans Activation Framework。

您可以通过将以下内容添加到您的Android应用程序的build.gradle文件来试用此版本:

  android { packagingOptions { pickFirst 'META-INF/LICENSE.txt' // picks the JavaMail license file } } repositories { jcenter() maven { url "https://maven.java.net/content/groups/public/" } } dependencies { compile 'com.sun.mail:android-mail:1.5.5' compile 'com.sun.mail:android-activation:1.5.5' } 

从JavaMail 1.6.0开始:

用于Android的JavaMail至less需要Android API级别19,其对应于Android KitKat,它是当前最早支持的Android版本。