需要帮助调试电子邮件代码

时间:2013-01-17 06:40:44

标签: java android debugging email

我想知道是否有人可以帮我调试。我目前正在使用以下代码:

Sending Email in Android using JavaMail API without using the default/built-in app

并按指示使用了所有代码。输入我的电子邮件字段后,我无法收到要发送的电子邮件。我注意到GMailSender.java中有一段代码,似乎缺少一段代码。

}catch(Exception e){

}

知道我已经调试了代码的其他部分,我添加了一个Log.e,就像这样。

}catch(Exception e){
    Log.e("GmailDebug", e.getMessage(), e); 
}

结果,我注意到我得到了以下日志。

01-16 22:22:38.933: E/GmailDebug(4487): null
01-16 22:22:38.933: E/GmailDebug(4487): android.os.NetworkOnMainThreadException

在预先评论了这些行并系统地取消注释后,我终于能够确定在取消注释行之前我没有得到任何日志

Transport.send(message);

有人可以帮帮我,并告诉我如何防止这些错误?谢谢!

1 个答案:

答案 0 :(得分:1)

这是因为您正在主线程上执行网络操作,而Android 3.0及更高版本不允许这样做。即使它在服务中,服务也在UI线程上运行,除非您在另一个线程中专门启动它们或在其中创建一个线程。

您可以通过使用ThreadAsyncTask在主UI线程中的后台线程中运行任务来解决此问题。