java.lang.NoClassDefFoundError:android中的javax.activation.DataHandler
我正在android手机上制作一个电子邮件发送应用程序。为此,我包括了两个jar文件java.lang.NoClassDefFoundError:android中的javax.activation.DataHandler,android,Android,我正在android手机上制作一个电子邮件发送应用程序。为此,我包括了两个jar文件激活。jar和mail.jar。但是当我运行此应用程序并尝试发送邮件时,我在LogCat上遇到以下错误 java.lang.NoClassDefFoundError: javax.activation.DataHandler 我是android新手。所以我无法解决这个问题。请帮帮我。谢谢您应该使用一个。您需要在应用程序中包含三个库:mail.jar、activation.jar和additionnal.jar
激活。jar
和mail.jar
。但是当我运行此应用程序并尝试发送邮件时,我在LogCat
上遇到以下错误
java.lang.NoClassDefFoundError: javax.activation.DataHandler
我是android新手。所以我无法解决这个问题。请帮帮我。谢谢您应该使用一个。您需要在应用程序中包含三个库:mail.jar、activation.jar和additionnal.jar(原文如此)。看起来您缺少激活库所依赖的内容,这可能是因为您没有使用该库的Android端口
我在一个项目中成功地使用了Android友好的javamail版本,它运行得非常好。1.5.5版和更高版本内置了对的支持,并包括对的支持
根据文件:
Android不提供与Java兼容的运行时,因此无法运行标准的JavaMail发行版。相反,一个特殊版本的JavaMail可用于Android。这个特殊版本的JavaMail依赖于JavaBeans激活框架的特殊版本
您可以通过在Android应用程序的build.gradle文件中添加以下内容来尝试此版本:
首先是:
JavaMail for Android至少需要Android API级别19,对应于Android KitKat,它是目前最早支持的Android版本
如果您要构建电子邮件发件人java AWT应用程序或Android应用程序,则需要使用3个jar文件:
(包含类似Mime.class的类)activation.jar
(包含Session.class之类的类)javax\u mail.jar
(包含awt文件)additional.jar
java.lang.NoClassDefFoundError.javax.activation.DataHandler
在创建java mail_sender应用程序时,我发现我没有添加额外的jar文件。导入了DataHandler类嘿,谢谢Mark。。。我没有包括额外的.jar。感谢您的支持我没有包括activation.jar和其他.jar文件这是maven中的某个地方,这样我就可以在Android Studio中将其作为库添加吗?现在google代码正在关闭,该项目是否会转移到例如github?我把问题发给了Alexandre Thiel,他在google代码上发布了这个项目。不幸的是,这是GPL,如果编写一个在服务器jvm上工作的通用库而不是
javax.mail
和javax.activation api
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'
}