Я новичок в разработке xamarin.forms и разработал бесплатное приложение с картами Google для моего города.
Приложение отлично работает на всех эмуляторах Android Visual Studio (2019) и даже на моем старом телефоне. (android 4.3).
Публикация приложения также прошла успешно.
Однако первый пользователь, установивший приложение на свой телефон (android 9), сообщил мне, что приложение разбилось. Просто сбой в момент отображения (попытки) карты без каких-либо сообщений об ошибках. Но любые другие (без карты) «ContentPage» приложения работают как надо. Сбой произошел только при попытке пользователя открыть ContentPage с помощью элемента управления картой.
Поскольку у меня нет реального устройства Android 9 (и на всех эмуляторах Android Visual Studio приложение работает), я установил Nox Player:https://www.bignox.com/и создали 2 доступных эмулятора: андроид 5.1.1 и андроид 7.1.2 Результаты : приложение успешно работает на android 5 и падает на android 7 (вместе с эмулятором android 7 - программа-эмулятор просто закрывается без сообщения об ошибке).
Ok. Я создал простейшее тестовое приложение xamarin forms map - просто показать карту и ничего более.
MainPage.xaml:
<ContentPage.Content>
<map:Map />
</ContentPage.Content>
Та же история: работает на всехAndroid-эмуляторы Visual Studio, работает на моем старом устройстве Android 4.3, работает на nox-player android 5 и дает сбой на nox android 7!
Затем я попытался скомпилировать примеры из документации Microsoft. Например:https://docs.microsoft.com/en-us/samples/browse/?products=xamarin&term=Xamarin.Forms.MapsВсе эти образцы размещены здесь:https://github.com/xamarin/xamarin-forms-samples/tree/master/WorkingWithMapsЯ только что скачал решение, заменил мой com.google.android.maps.v2.API_KEY на AndroidManifest.xml и скомпилировал его. Нет больше действий. Результаты : Абсолютно то же самое поведение.
Точнее, изначально я использовал пакет Xamarin.Forms.GoogleMaps: https://github.com/amay077/Xamarin.Forms.GoogleMapsс такими же результатами.
Более подробно на этой странице есть ссылка на уже скомпилированный apk с образцами: https://install.appcenter.ms/users/okuokuoku/apps/xfgooglemapsample/distribution_groups/trial Результат : то же самое.
Пожалуйста, кто знает, в чем причина?
Дополнительная информация:
AndroidManifest.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.comscreen.App1" android:installLocation="internalOnly">
<uses-sdk android:minSdkVersion="22" android:targetSdkVersion="28" />
<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" />
<application android:label="App1.Android" android:usesCleartextTraffic="true" android:icon="@mipmap/launcher_foreground">
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="MY_API_KEY_SORRY_FOR_HIDING" />
</application>
</manifest>