Xamarin.Forms地图崩溃的应用程序

时间:2015-06-09 22:04:34

标签: google-maps xamarin xamarin.forms

我很难在我的Xamarin Forms应用上显示地图。这是我每次用地图打开页面时得到的错误:

0x29 in System.Diagnostics.Debugger.Mono_UnhandledException_internal    C#
0x1 in System.Diagnostics.Debugger.Mono_UnhandledException  C#
0x6 in Android.Runtime.UncaughtExceptionHandler.UncaughtException at /Users/builder/data/lanes/monodroid-mavericks-monodroid-5.1-series/d23da369/source/monodroid/src/Mono.Android/src/Runtime/UncaughtExceptionHandler.cs:35,4 C#
0x1C in Java.Lang.Thread.IUncaughtExceptionHandlerInvoker.n_UncaughtException_Ljava_lang_Thread_Ljava_lang_Throwable_ at /Users/builder/data/lanes/monodroid-mavericks-monodroid-5.1-series/d23da369/source/monodroid/src/Mono.Android/platforms/android-21/src/generated/Java.Lang.Thread.cs:221,5 C#
0x1D in object.28d67210-c8ee-4f17-9d83-36104107982d C#

这是创建页面的代码:

var topLayout = new StackLayout
{
    Children =
    {
        new Map(MapSpan.FromCenterAndRadius(new Position(37,-122), Distance.FromMiles(0.3)))
        {
            IsShowingUser = true,
            HeightRequest = 100,
            VerticalOptions = LayoutOptions.FillAndExpand
        }
    }
};

var bottomLayout = new StackLayout { Children = { ... }  }; //shortened for readability

Content = new StackLayout
{
    Children = { topLayout, bottomLayout }
};

我说问题就是地图,因为如果我改变了新地图"例如,标签的行,它可以工作。

我实例化地图FW,如下所述:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/maps/

protected override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);

    global::Xamarin.Forms.Forms.Init(this, bundle);
    Xamarin.FormsMaps.Init(this, bundle);
    LoadApplication(new FullHelp.App());
}

2 个答案:

答案 0 :(得分:3)

我尝试了Android的解决方案,是的,确实抛出了Exception

Debug --> Exceptions对话框中,如果您点击Thrown的{​​{1}}复选框,您将获得有关要解决的例外的更有意义的说明。

enter image description here

抛出的异常细节是:

Common Language Runtime Exceptions

查看您的'Java.Lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.geo.API_KEY" android:valu…' 您没有定义键/功能。

请参阅this link,其中将讨论如何配置AndroidManifest.xml应用程序以处理Xamarin.Forms集成,因为您似乎缺少某些内容。

我的其他StackOverflow答案here上有更多详细信息,详细说明了如何为Andorid创建API密钥。

答案 1 :(得分:1)

按住短键 Ctrl+Alt+E 以在Visual Studio中打开例外。