Я создал кроссплатформенное решение xamarin для переносимых библиотек классов (PCL) в Visual Studio 2017 Enterprise и добавил пакет nuget: Xamarin.Forms.Maps (версия 2.3.3.193), который соответствует встроенной версии Xamarin.Forms, поэтому проект строится и успешно работает без ошибок, но выдает исключение Исключение , и это «скопированные данные»:
«Произошло необработанное исключение. Произошло»
Ниже приведен код, который вызывает исключение при запуске проекта в эмуляторе Android 6.0 (x86) или телефоне (Android 4.4):
<maps:Map x:Name="LocationsMap" HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"/>
внутри страницы содержимого (MapPage.xaml):
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="TravelRecordApp.MapPage"
xmlns:maps="clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps">
<maps:Map x:Name="LocationsMap" HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"/>
В настоящее время я использую xamarin.Forms и Xamarin.Forms.Maps (обе версии 2.3.3.193).
и Xamarin.GooglePlayServices.Maps (29.0.0.1) и когда я обновляю xamarin.Forms и Xamarin.Forms до v3.1.0.697729 или Xamarin.GooglePlayServices.Maps до v60.11 (последние стабильные выпуски), это приводит к множеству ошибок и проект не может быть построен, поэтому я сохраняю версии по умолчанию (v2.3.3.193) и (v29.0.0.1).
я включил ключ API в файл манифеста из «Maps SDK для android», и это разрешения:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto">
<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission
android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="API_KEY" />
<application android:label="TravelRecordApp.Android"></application>
</manifest>