尝试从Android发送电子邮件时在Visual Studio中崩溃

时间:2017-07-03 13:59:47

标签: android email xamarin crash

尝试从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

有什么想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

在更多挖掘之后发现,没有上下文就无法启动Activity。我最后改变了

StartActivity(email);

((Activity)Forms.Context).StartActivity(email);

并且该特定错误消失了。

请注意,我点击的下一个错误是“找不到提供商”,这是因为没有在模拟器中配置电子邮件应用。