尝试在Visual Studio 2017中显示xamarin.Forms.Maps时发生“未处理的异常”

时间:2018-08-30 15:39:05

标签: c# visual-studio google-maps xamarin xamarin.forms

我在Visual Studio 2017 Enterprise中创建了跨平台的xamarin可移植类库(PCL)解决方案,并添加了与内置Xamarin.Forms版本匹配的nuget包:Xamarin.Forms.Maps(版本2.3.3.193),因此该项目得以构建并成功运行,没有任何错误,但引发了异常Exception,这些是“复制的详细信息”:  “发生未处理的异常。发生了”  以下是在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)。 我在“ Maps SDK for android”的清单文件中包含了API密钥,这些是权限:

<?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>

1 个答案:

答案 0 :(得分:0)

安装.Net Framework 47.2后,所有问题均已解决。这里是链接https://support.microsoft.com/en-us/help/4054530/microsoft-net-framework-4-7-2-offline-installer-for-windows

注意::如果您运行的是Windows 10的旧版本(内部版本10240),则需要更新Windows,因为无法在其上安装.Net Framework 47.2。