Xamarin地图不会在仿真中显示地图

问题描述

我正在追踪一本书,并且我的应用程序确实导航到我创建的地图页面,并且按每本书的预期显示位置,但未在后台显示地图。地图上的+/- zomm按钮也无济于事。

我的XAML

   <ContentPage.Content>
        <Grid>
            <Grid.RowDeFinitions>
                <RowDeFinition Height="4*" />
                <RowDeFinition Height="Auto" />
                <RowDeFinition Height="1*" />
            </Grid.RowDeFinitions>
            <maps:Map x:Name="map" Grid.RowSpan="3" />
            <BoxView Grid.Row="1" BackgroundColor="White"
                Opacity=".8" />
            <StackLayout Padding="10" Grid.Row="1">
                <Label x:Name="title"
                    HorizontalOptions="Center" />
                <Label x:Name="date"
                    HorizontalOptions="Center" />
                <Label x:Name="rating"
                    HorizontalOptions="Center" />
                <Label x:Name="notes"
                    HorizontalOptions="Center" />
            </StackLayout>
        </Grid>
    </ContentPage.Content>

我的任何AndroidMenifest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.triplog2">
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
    <application android:label="TripLog2.Android" android:theme="@style/MainTheme">
    <Meta-data
      android:name="com.google.android.maps.v2.API_KEY"
      android:value="YOUR-MAPS-API-KEY-HERE" />
  </application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

这是我的地图屏幕的外观:

enter image description here

我不知道实际设备的结果是什么(我尚未部署它),但我希望它能在仿真中工作。

解决方法

所以我已经完成了谷歌地图等的初始化(here概述的部分地图配置),但是关键部分是这样的:

<meta-data
  android:name="com.google.android.maps.v2.API_KEY"
  android:value="YOUR-MAPS-API-KEY-HERE" />

我需要为YOUR-MAPS-API-KEY-HERE产生自己的价值。

本文已涵盖here,但本文的日期为2018年6月25日(及其现在为11/06/2020),因此一些屏幕截图并不完全相同,但是您会发现的。

但是,如果您只是想快速查看运行中的Google地图,而又不担心过多的安全性(出于学习目的),则可以跳过keytool部分,然后跳至Creating an API Project

基本上转到Google Developers Console API & Services Dashboard并按照屏幕快照进行操作。

创建API密钥凭据时,实际上,您会获得需要粘贴到YOUR-MAPS-API-KEY-HERE的密钥。其余步骤将限制其安全性。

enter image description here

可以使用的设置的最终屏幕截图在这里。

Final Image

有关详细信息,请参阅文章,这是入门的最低要求,并不包含所有详细信息。

*** 更新 ***

如果您确实需要使用keytool来生成SHA1密钥,这也非常简单。

启动命令行,它将在默认位置c:\ windows \ system32中启动。

键入keytool并输入,它应该是公认的命令(您将获得其帮助)。

接下来运行实际命令:

keytool.exe -list -v -keystore "C:\Users\[YOUR_LOGIN]\AppData\Local\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

在Windows中用您的实际用户名替换上面的[YOUR_LOGIN]。它将生成您可以提供的所有信息,以获取完整的安全性/权限(主要是您只需要SHA1密钥)