【问题标题】:Sending automated email issues Android发送自动电子邮件问题 Android
【发布时间】: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)”

不确定这对本网站上的任何人是否有用。此外,文件被锁定,因为我无法编辑它,这是我所期望的。

【问题讨论】:

标签: java android email android-studio


【解决方案1】:

不知什么原因,我下载的activation.jar 文件第一次不起作用。我一直发现它是反编译的.class文件,字节码版本:48.0(Java 1.4)

然后我删除了从以下链接获得的所有文件:

https://code.google.com/p/javamail-android/downloads/list

然后再次重新下载所有这些文件。然后我完成了将它们作为库添加回我的应用程序的整个过程。

现在一切正常,从 activation.jar 查看 DataHandler 类时,它显示“反编译的 .class 文件,字节码版本:49.0 (Java 5.0)”

我仍然不知道为什么我第一次下载它时,它无法使用,但现在可以正常使用。

【讨论】:

    猜你喜欢
    • 2014-01-15
    • 2016-01-09
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2013-08-22
    • 1970-01-01
    相关资源
    最近更新 更多