尝试从Android发送电子邮件时,我的Xamarin应用程序崩溃了。这是我的代码:
public class EmailHelper : Activity, IEmail
{
...
private bool CreateEmail(string attachment)
{
var email = new Intent(Intent.ActionSend);
SettingsDataAdapter mySettingsDataAdapter = App.MySettingsDataAdapter;
email.PutExtra(Android.Content.Intent.ExtraEmail, new string[] { "test@test.com"});
email.PutExtra(Android.Content.Intent.ExtraSubject, "test email");
email.PutExtra(Android.Content.Intent.ExtraText, "see attachment");
email.SetType("message/rfc822");
var file = new Java.IO.File(attachment);
file.SetReadable(true, false);
var uri = Android.Net.Uri.FromFile(file);
email.PutExtra(Intent.ExtraStream, uri);
email.SetFlags(ActivityFlags.NewTask);
StartActivity(email);
return true;
}
...
}
,输出窗口中的第一个错误是:
attempt to invoke virtual method 'android.app.activitythread$applicationthread android.app.activitythread.getapplicationthread()' on a null object reference
有什么想法吗?提前谢谢!
答案 0 :(得分:0)
在更多挖掘之后发现,没有上下文就无法启动Activity。我最后改变了
StartActivity(email);
与
((Activity)Forms.Context).StartActivity(email);
并且该特定错误消失了。
请注意,我点击的下一个错误是“找不到提供商”,这是因为没有在模拟器中配置电子邮件应用。