发送自动电子邮件问题Android

时间:2015-08-25 20:55:35

标签: java android email android-studio

我正在尝试编写一个应用程序,该应用程序将通过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类。但是,当我点击它查看它时,屏幕顶部会出现一条消息,上面写着" Decompiled .class文件,字节码版本:48.0(Java 1.4)"

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

1 个答案:

答案 0 :(得分:2)

无论出于何种原因,我下载的activation.jar文件第一次都无法正常工作。我一直发现它是Decompiled .class文件,字节码版本:48.0(Java 1.4)

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

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

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

现在一切正常,当从activation.jar查看DataHandler类时,它会显示“Decompiled .class file,bytecode version:49.0(Java 5.0)”

我仍然不知道为什么当我第一次下载它时,它没有用,但它现在工作正常。