2015-06-09 4 views
0

Мне нелегко пытаться показать карту на моем приложении Xamarin Forms. Это ошибка, я получаю каждый раз, когда я открываю страницу с картой:Xamarin.Forms Maps crashing app

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

Вы не указали название исключения. Пожалуйста, добавьте его. BTW, в последнем xamarin они сломали исключение stacktraces. Попробуйте установить старый (8.9 должно быть ОК) и посмотреть точное исключение. – Grigory

+0

Вы также добавили ключ Карты в конфигурацию и проверили необходимые разрешения? –

+0

@ GeraldVersluis нет, но в соответствии с предоставленной документацией это не должно быть проблемой. По ссылке они говорят, что если вы не предоставите ключи карты, xamarin отобразит серое окно. О разрешениях я позволил этому проскользнуть, я попробую это. Благодарю. – eestein

ответ

3

Я попробовал ваше решение для Android, и да, это действительно бросить Exception.

В диалоговом окне Debug --> Exceptions, если вы нажмете на Thrown флажок для Common Language Runtime Exceptions, вы получите более содержательное описание исключения, которое должно быть разрешено.

enter image description here

Деталь исключения брошено является:

'Java.Lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.geo.API_KEY" android:valu…' 

Глядя на ваши AndroidManifest.xml не имеют никаких ключей, определенные/возможности.

Обратитесь к this link, в котором рассказывается, как настроить приложение Xamarin.Forms для обработки интеграции Maps, поскольку вам, кажется, не хватает некоторых вещей.

В моем другом ответе StackOverflow here содержится подробная информация о том, как создать ключ API для Andorid.

+0

Спасибо, хотя я не понимаю, почему в учебном пособии Xamarin сказано, что они не нужны для тестирования. Спасибо за помощь и время. – eestein

1

Удерживать короткие ключи Ctrl+Alt+E Открыть Исключения в Visual Studio.