【问题标题】:crash in Visual Studio when attempting to send an email from Android尝试从 Android 发送电子邮件时在 Visual Studio 中崩溃
【发布时间】:2017-07-03 13:59:47
【问题描述】:

我的 Xamarin 应用程序在尝试从 Android 发送电子邮件时崩溃。这是我的代码:

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

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

【问题讨论】:

  • null object reference,调试它并确定哪个对象为空............

标签: android email xamarin crash


【解决方案1】:

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

StartActivity(email);

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

那个特定的错误就消失了。

请注意,我遇到的下一个错误是“未找到提供商”,这是由于没有在模拟器中配置电子邮件应用程序。

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 1970-01-01
    • 2011-11-07
    • 2016-12-20
    • 2014-04-20
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多