2015-08-25 200 views
0

我正在尝试编写一个应用程序,该应用程序将通过Android应用程序中的按钮按钮发送自动电子邮件。发送自动发送的电子邮件问题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') 
} 

我做这种通过看这个问题:

​​

但错误依然存在。

编辑2: 当.jar文件在我的libs文件夹(和在模块中)时,我可以找到DataHandler类。但是,当我点击它来查看它时,屏幕上方出现一条消息,提示“反编译.class文件,字节码版本:48.0(Java 1.4)”

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

+0

这对你有帮助吗? http://stackoverflow.com/questions/3649014/send-email-using-java – Christine

+0

我的问题不是连接到SMTP。 – Beren

回答

2

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

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

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

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

现在一切都工作得很好,并在的DataHandler类从的activation.jar看时,它说:“反编译的.class文件,字节码版本:49.0(Java 5.0中)”

我仍然不知道为什么,当我首先下载它,它没有工作,但它现在工作正常。