为了账号安全,请及时绑定邮箱和手机立即绑定

java.lang.NoClassDefFoundError:android中的javax

/ 猿问

java.lang.NoClassDefFoundError:android中的javax

aluckdog 2019-11-19 15:13:53

我正在用Android手机制作电子邮件发送应用程序。为此,我包括了两个jar文件activation. jar和mail.jar。但是,当我运行此应用程序并尝试发送邮件时,出现了以下错误LogCat。


java.lang.NoClassDefFoundError: javax.activation.DataHandler 

我是Android新手。所以我无法弄清楚这个问题。请帮我。谢谢


查看完整描述

2 回答

?
慕村225694

您应该使用一个Android友好的javamail端口。您需要在应用程序中包含三个库:mail.jar,activation.jar和additionalnal.jar(sic)。您似乎缺少了激活库所依赖的内容,这可能是因为您没有使用该库的Android端口。


我已经在一个项目中成功使用了Javamail的Android友好版本,它确实运行良好。


查看完整回答
反对 回复 2019-11-19
?
明月笑刀无情

在JavaMail的API参考实现版本1.5.5,后来有内置的支持Android的,并包括支持的OAuth2。


根据文档:


Android未提供Java兼容的运行时,因此无法运行标准的JavaMail分发。而是可以使用Android的特殊版本的JavaMail。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至少需要Android API级别19,该级别对应于Android KitKat(当前最受支持的Android版本)。


查看完整回答
反对 回复 2019-11-19

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信