【发布时间】:2015-08-29 00:08:14
【问题描述】:
我正在尝试编写一个应用程序,该应用程序将通过 Android 应用程序中的按钮推送自动发送电子邮件。
我知道这个问题已经被问过多次,但我仍然没有找到适合我的案例的最终解决方案。
我遵循的代码示例来自这里:
http://macmaker.blogspot.com/2012/04/send-emails-in-background-in.html
GMailSender 类完全相同。 MainActivity 类也是如此,除非我使用自己的电子邮件来测试它是否正确发送。
我研究的两个主要问题如下:
Android sending emails java.lang.NoClassDefFoundError: javax.activation.DataHandler
java.lang.NoClassDefFoundError: javax.activation.DataHandler in android
我将所有三个文件(activation.jar、additionnal.jar、mail.jar)作为模块放入我的项目中。这是按照此 YouTube 视频中的示例完成的:
https://www.youtube.com/watch?v=dpuJPoXkFG4
但是,我仍然不断收到此错误:
08-25 14:10:24.968 29531-29531/com.example.mailapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.mailapp, PID: 29531
java.lang.NoClassDefFoundError: javax.activation.DataHandler
at com.example.mailapp.GMail.send(GMail.java:103)
at com.example.mailapp.MainActivity$1.onClick(MainActivity.java:33)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
我不确定我所遵循的 YouTube 视频中的步骤是否是它无法正常工作的原因,或者代码是否存在一般问题。
如果您有任何建议,请帮忙。
编辑:我还尝试将所有 .jar 文件放在 libs 文件夹中,并确保它们位于依赖项下的 build.gradle 文件中,如下所示:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.0'
compile project(':activation')
compile project(':additionnal')
compile project(':mail')
compile files('libs/activation.jar')
compile files('libs/additionnal.jar')
compile files('libs/mail.jar')
}
我通过查看这个问题来做到这一点:
Android Studio: Add jar as library?
但错误仍然存在。
编辑 2: 当 .jar 文件位于我的 libs 文件夹(和模块中)时,我可以找到 DataHandler 类。但是,当我单击它查看它时,屏幕顶部会出现一条消息,上面写着“反编译的 .class 文件,字节码版本:48.0 (Java 1.4)”
不确定这对本网站上的任何人是否有用。此外,文件被锁定,因为我无法编辑它,这是我所期望的。
【问题讨论】:
-
我的问题不在于与 SMTP 的连接。
标签: java android email android-studio