当我的 Xamarin 窗体应用运行时,它已停止?



我为Android创建了一个xamarin形式的空白应用程序。当我在模拟器中运行空白应用程序时,工作完全正确,但是当将Xamarin.Form.GoogleMaps添加到我的页面并在模拟器中运行时显示错误!
错误信息= "应用程序已停止">
我做了以下的添加Xamarin.Form.GoogleMaps。

1-从Nuget下载最新版Xamarin.Form.GoogleMaps。//


2 -添加<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="my api key" />到AndroidManifest.xml

3-添加所有权限我需要!的权限列表
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

4-添加xmlns:maps="clr-namespace:Xamarin.Forms.GoogleMaps;assembly=Xamarin.Forms.GoogleMaps"到我的页面

5-并添加<maps:Map VerticalOptions="Fill" HorizontalOptions="Fill"/>

朋友们,我该如何解决这个关闭应用的问题呢?

你错过了Android项目中的插件初始化。

using Xamarin.Forms.GoogleMaps.Android;
namespace App.Droid
{
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
// more stuff here...
var platformConfig = new PlatformConfig
{
BitmapDescriptorFactory = new CachingNativeBitmapDescriptorFactory()
};
Xamarin.FormsGoogleMaps.Init(this, savedInstanceState, 
platformConfig); // initialize for Xamarin.Forms.GoogleMaps
}
LoadApplication(new App());
}
}
}

首先,你可以下载android studio并在模拟器中检查日志,找出出现的错误类型并导致应用程序崩溃。

另外,在github中已经有这个nuget包的示例,你尝试过吗?

最后,在第4步,您不仅需要将这些权限添加到AndroidManifest.xml中,而且还需要用户自己授予危险的权限,例如位置权限。

因此您可以根据官方文档:https://learn.microsoft.com/en-us/xamarin/android/app-fundamentals/permissions?tabs=windows进行运行时权限检查并请求权限和https://learn.microsoft.com/en-us/xamarin/essentials/permissions?tabs=android

最新更新