我正在制作一个在Android手机中发送应用程序的电子邮件。为此我添加了两个jar文件activation. jar
和mail.jar
。但是,当我运行此应用程序并尝试发送邮件时,我在LogCat
上收到了以下错误。
java.lang.NoClassDefFoundError: javax.activation.DataHandler
我是android新手。所以我无法弄清楚这个问题。请帮我。感谢
答案 0 :(得分:61)
您应该使用Android-friendly port of javamail。您需要在应用中包含三个库:mail.jar,activation.jar和additionnal.jar(sic)。看起来你遗漏了激活库所依赖的东西,这可能是因为你没有使用这个库的Android端口。
我在项目中成功使用了Android友好版本的javamail,并且效果非常好。
答案 1 :(得分:7)
JavaMail API Reference Implementation版本1.5.5及更高版本已内置对Android的支持,并包含对OAuth2的支持。
根据文件:
Android不提供Java兼容运行时,因此无法运行标准JavaMail分发。相反,Android的特殊版本的JavaMail可用。这个特殊版本的JavaMail依赖于JavaBeans Activation Framework的特殊版本。
您可以通过将以下内容添加到Android应用程序的build.gradle文件中来试用此版本:
<figure class="container">
<div class="img">
</div>
<figcaption class="somethingElse">
True Dimentions: 512 x 512 px
</figcaption>
</figure>
从JavaMail 1.6.0开始:
Android版JavaMail至少需要Android API级别19,它对应于Android KitKat,这是目前支持最旧的Android版本。
答案 2 :(得分:0)
因此,如果您要构建电子邮件发件人java AWT应用程序或Android App,则需要使用3个jar文件。
链接:https://code.google.com/archive/p/javamail-android/downloads
我为什么要评论这些东西,因为我很难使用 java.lang.NoClassDefFoundError.javax.activation.DataHandler 创建我的java mail_sender应用程序时,然后发现,我错过了添加extra.jar文件的过程。
快乐编码! :)