Xamarin.Forms.Maps разбился на Android 7+ - PullRequest
0 голосов
/ 19 октября 2019

Я новичок в разработке 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 Результат : то же самое.

Пожалуйста, кто знает, в чем причина?

Дополнительная информация: Android app options pg1 Android app options pg2 Android app options pg3

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>

1 Ответ

0 голосов
/ 19 октября 2019

Поскольку вы не предоставили код erorr, я могу подозревать только 2 причины:

  1. Может быть, map требуется какое-то разрешение в новых версиях Android? Проверьте еще раз
  2. При создании APK вы проверили все архитектуры? Под Опциями Android -> Дополнительно -> Поддерживаемые архитектуры -> Выбрать все архитектуры. Больше информации здесь: https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/cpu-architectures?tabs=windows
...