我很难在我的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());
}
答案 0 :(得分:3)
我尝试了Android
的解决方案,是的,确实抛出了Exception
。
在Debug --> Exceptions
对话框中,如果您点击Thrown
的{{1}}复选框,您将获得有关要解决的例外的更有意义的说明。
抛出的异常细节是:
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中打开例外。