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

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

我正在android手机上制作一个电子邮件发送应用程序。为此,我包括了两个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文件:

  • activation.jar
    (包含类似Mime.class的类)
  • javax\u mail.jar
    (包含Session.class之类的类)
  • additional.jar
    (包含awt文件)
链接:

我之所以对这篇文章发表评论,是因为我对这个
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'
 }