我在Android手机中发送电子邮件发送应用程序.为此,我包括两个jar文件activation. jar和mail.jar.但是,当我运行此应用程序并尝试发送邮件时,我收到了以下错误LogCat.
java.lang.NoClassDefFoundError: javax.activation.DataHandler
Run Code Online (Sandbox Code Playgroud)
我是android的新手.所以我无法弄清楚这个问题.请帮我.谢谢
Mar*_*son 61
你应该使用一个Android友好的javamail端口.您需要在应用中包含三个库:mail.jar,activation.jar和additionnal.jar(sic).看起来你遗漏了激活库依赖的东西,这可能是因为你没有使用这个库的Android端口.
我在一个项目中成功使用了Android友好版本的javamail,它运行得非常好.
在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'
}
Run Code Online (Sandbox Code Playgroud)
从JavaMail 1.6.0开始:
JavaMail for Android至少需要Android API级别19,它对应于Android KitKat,这是目前支持最新的Android版本.