Карты Google некорректно отображаются в приложении Ioni c на устройстве Android - PullRequest
0 голосов
/ 26 марта 2020

Я добавляю Google Maps Javascript в мое приложение ioni c ниже.

Карта отображается, как и ожидалось, когда я запускаю ionic serve,

Однако, когда я пытаюсь для запуска на моем устройстве android с использованием приведенных ниже команд на карте отображается иногда , но не всегда.

  1. ionic build
  2. npx cap sync
  3. npx cap open android

Может кто-нибудь сказать мне, почему это происходит, и как это можно решить?

Вот мой код ниже я также покажу вывод консоли в Android studio при попытке запустить приложение:

<ion-header [translucent]="true">
  <ion-toolbar color="primary">
    <ion-title>
      Google Maps
    </ion-title>
  </ion-toolbar>
</ion-header>

<ion-content [fullscreen]="true">
  <div #map id="map" [hidden]="!user"></div>
</ion-content>

Машинопись:

  user = null;
  @ViewChild('map', { static: false }) mapElement: ElementRef;
  map: any;
  markers = [];
  watch = null;
  latLng = null;

  constructor(private afAuth: AngularFireAuth, private afs: AngularFirestore) { }

  ionViewWillEnter() {
    this.anonLogin();
    this.loadMap();
  }

  anonLogin() {
    this.afAuth.auth.signInAnonymously().then(res => {
      this.user = res.user;
      this.watch = Geolocation.watchPosition({}, (position, err) => {
        if (position) {
          this.deleteMarkers();
          var newLocation = { lat: position.coords.latitude, lng: position.coords.longitude };
          this.addMarker(newLocation);
        }
      });
    });
  }

  addMarker(location) {
    var marker = new google.maps.Marker({
      position: location,
      map: this.map,
      animation: google.maps.Animation.BOUNCE,
    });
    this.markers.push(marker);
  }

  deleteMarkers() {
    this.clearMarkers();
    this.markers = [];
  }

  clearMarkers() {
    this.setMapOnAll(null);
  }

  setMapOnAll(map) {
    for (var i = 0; i < this.markers.length; i++) {
      this.markers[i].setMap(map);
    }
  }

  loadMap() {

    var locationOnLoad = null;

    Geolocation.getCurrentPosition().then((resp) => {
      this.latLng = new google.maps.LatLng(resp.coords.latitude, resp.coords.longitude);
      locationOnLoad = { lat: resp.coords.latitude, lng: resp.coords.longitude };
    }).then(() => {

      this.map = new google.maps.Map(this.mapElement.nativeElement, {
        center: locationOnLoad,
        zoom: 15,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      });

      this.addMarker(locationOnLoad);

    }).catch((err) => {
      console.log(err);
    });
  }

А вот вывод консоли, когда Я пытаюсь запустить в Android Studio:

03/26 14:53:18: Запуск «приложения» на Samsung SM-G965F. $ adb shell am start -n "io.ioni c .starter / io.ioni c .starter.MainActivity" -a android .intent.action.MAIN - c android .intent.category .LAUNCHER Подключен к процессу 29347 на устройстве 'samsung-sm_g965f-2410169c6d0c7ece'. Захват и отображение сообщений logcat из приложения. Это поведение можно отключить в разделе «Выход Logcat» на странице настроек «Отладчик». E / Zygote: isWhitelistProcess - процесс находится в белом списке E / Zygote: accessInfo: 1 I / SE Linux: SE Linux: seapp_context_lookup: seinfo = недоверенный, уровень = s0: c139, c258, c512, c768, pkgname = io. ioni c .starter I / o.ioni c .starte: Позднее включение -Xcheck: jni D / ConnectivityManager_URSP: Ursp sIsUrsp = false, sIsCheckUrsp = false, uid = 10651 D / Proxy: urspP равно нулю: 10651 Вт / FirebaseApp: Не удалось инициализировать FirebaseApp по умолчанию, поскольку параметры по умолчанию не найдены. Обычно это означает, что com.google.gms: google-services не был применен к вашему проекту gradle. I / FirebaseInitProvider: инициализация FirebaseApp не удалась D / libEGL: загружен /vendor/lib64/egl/libGLES_mali.so W / o.ioni c .starte: доступ к скрытому методу Landroid / graphics / drawable / Drawable; -> getOpticalInsets () Landroid / график / вставки; (легкий серый список, ссылки) Доступ к скрытому полю Landroid / graphics / Insets; -> слева: I (легкий серый список, ссылки) Доступ к скрытому полю Landroid / graphics / Insets; -> справа: I (легкий серый список, ссылки) Доступ к скрытому полю Landroid / graphics / Insets; -> top: I (легкий серый список, связывание) Доступ к скрытому полю Landroid / graphics / Insets; -> bottom: I (легкий greylist, подключение) E / o.ioni c .starte: неверный идентификатор 0x00000000 , W / o.ioni c .starte: Доступ к скрытому методу Landroid / view / View; -> getAccessibilityDelegate () Landroid / view / View $ AccessibilityDelegate; (легкий серый список, связывание) W / o.ioni c .starte: доступ к скрытому методу Landroid / view / View; -> computeFitSystem Windows (Landroid / graphics / Rect; Landroid / graphics / Rect;) Z (легкий greylist , отражение) W / o.ioni c .starte: доступ к скрытому методу Landroid / view / ViewGroup; -> makeOptionalFitsSystem Windows () V (легкий серый список, отражение) I / WebViewFactory: загрузка com. android. chrome версия 80.0.3987.149 (код 398714932) E / o.ioni c .starte: неверный идентификатор 0x00000000. E / o.ioni c .starte: Неверный идентификатор 0x00000000. I / cr_LibraryLoader: номер версии загруженной собственной библиотеки "80.0.3987.149" W / o.ioni c .starte: доступ к скрытому методу Landroid / content / Context; -> bindServiceAsUser (Landroid / content / Intent; Landroid / content / ServiceConnection; ILandroid / os / Handler; Landroid / os / UserHandle;) Z (светло-серый список, отражение) D / ConnectivityManager: requestNetwork; CallingUid: 10651, CallingPid: 29347 D / ConnectivityManager: requestNetwork; CallingUid: 10651, CallingPid: 29347 D / Capacitor: Запуск BridgeActivity D / Capacitor: Регистрация плагина: App D / Capacitor: Регистрация плагина: Accessibility D / Capacitor: Регистрация плагина: BackgroundTask D / Capacitor: Регистрация плагина: Браузер D / Capacitor: Регистрация Плагин: Camera D / Capacitor: Регистрация плагина: Буфер обмена D / Capacitor: Регистрация плагина: Устройство D / Capacitor: Регистрация плагина: LocalNotifications D / Capacitor: Плагин регистрации: Файловая система D / Capacitor: Плагин регистрации: Geolocation D / Capacitor: Плагин регистрации: Haptics D / Capacitor: Плагин регистрации: Клавиатура D / Capacitor: Плагин регистрации: Modals D / Capacitor: Плагин регистрации: Сеть D / Capacitor: Плагин регистрации : Разрешения D / Capacitor: Регистрация плагина: Фотографии D / Capacitor: Регистрация плагина: PushNotifications D / Capacitor: Регистрация плагина: Поделиться D / Capacitor: Регистрация плагина: SplashScreen D / Capacitor: Регистрация плагина: StatusBar D / Capacitor: Регистрация плагина: Хранение D / Capacitor: Регистрация плагина: Toast D / Capacitor: Регистрация плагина: WebView E / Capacitor: Невозможно прочитать файл по пути public / plugins D / Capacitor: Загрузка приложения в http://localhost W / o.ioni c .starte: Доступ к скрытому методу Landroid / media / AudioManager; -> getOutputLatency (I) I (легкий серый список, отражение) W / cr_media: требуется разрешение BLUETOOTH I / ConfigStore: android :: hardware :: configstore :: V1_0 :: ISurfaceFlingerConfigs :: hasWideColorDisplay retriev ed: 0 android :: hardware :: configstore :: V1_0 :: ISurfaceFlingerConfigs :: hasHDRDisplay найдено: 0 W / AudioCapabilities: неподдерживаемый mime audio / ac4 W / AudioCapabilities: неподдерживаемый mime audio / x-ima W / AudioCapabilities: неподдерживаемый mime audio / x-ape W / AudioCapabilities: неподдерживаемый mime audio / eac3-jo c W / AudioCapabilities: неподдерживаемый mime audio / mpeg-L1 неподдерживаемый mime audio / mpeg-L2 W / AudioCapabilities: неподдерживаемый mime audio / x-ms-wma D / Capacitor / Plugin / LN: получено LocalNotification: null Активность запущена без прикрепленного уведомления D / Capacitor: Приложение запущено D / Capacitor / Plugin / App: Изменение срабатывания: true W / VideoCapabilities: Нераспознанный профиль 4 для видео / hevc V / Capacitor / Плагин / Приложение: Уведомление слушателей события appStateChange D / Capacitor / Plugin / App: Не найдено слушателей события appStateChange W / VideoCapabilities: Неподдерживаемое mime video / mp43 W / VideoCapabilities: Нераспознанный профиль / уровень 1/32 для video / mp4v-es Неопознанный профиль / уровень 32768/2 для видео / mp4v-es нераспознанный профиль / le vel 32768/64 для видео / mp4v-es D / Capacitor: приложение возобновлено с W / VideoCapabilities: неподдерживаемое mime-видео / wvc1 D / OpenGLRenderer: Skia GL Pipeline W / VideoCapabilities: неподдерживаемое mime-видео / wvc1 D / EmergencyMode: [EmergencyManager] android createPackageContext успешно D / InputTransport: построен входной канал: fd = 133 D / ViewRootImpl@edef802 [MainActivity]: setView = DecorView@80c6513 [MainActivity] TM = true MM = false W / VideoCapabilities: неподдерживаемое mime video / x-ms-wmv7 W / VideoCapabilities: неподдерживаемое mime video / x-ms-wmv8 D / ConnectivityManager: requestNetwork; CallingUid: 10651, CallingPid: 29347 D / ConnectivityManager: requestNetwork; CallingUid: 10651, CallingPid: 29347 D / Capacitor: Обработка локального запроса: http://localhost/ I / VideoCapabilities: Неподдерживаемый профиль 4 для видео / mp4v-es D / ViewRootImpl@edef802 [MainActivity]: dispatchAttachedToWindow D / ViewRootImpl@edef802 [MainActivity]: возвращено реле: old = [0,0] [1080,2220] new = [0,0] [1080,2220] result = 0x7 поверхность = {valid = true 493862674432} изменено = true I / OpenGLRenderer : Инициализирован EGL, версия 1.4 D / OpenGLRenderer: Сменный поведение 2 Д / mali_winsys: EGLint new_window_surface (egl_winsys_display *, * пустота, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) возвращает 0x3000 Д / OpenGLRenderer: eglCreateWindowSurface = 0x72f5333200, 0x72fc826010 Д / InputTransport : Создан входной канал: fd = 146 D / ViewRootImpl@528b903 [MainActivity]: setView = android .widget.ImageView {607e080 V.ED ..... ...... ID 0,0-0,0 } TM = true MM = false D / InputTransport: построен входной канал: fd = 147 D / ViewRootImpl@84a84ac [MainActivity]: setView = android .widget.ProgressBar {52f1575 I.ED ..... .... ..ID 0,0-0,0} TM = true MM = false V / Конденсатор / Плагин / Сеть: N оповещение слушателей события networkStatusChange D / Capacitor / Plugin / Network: не найдено слушателей события networkStatusChange D / ViewRootImpl@edef802 [MainActivity]: MSG_RESIZED: frame = Rect (0, 0 - 1080, 2220) ci = Rect (0, 63 - 0, 39) vi = Rect (0, 63 - 0, 39) или = 1 MSG_WINDOW_FOCUS_CHANGED 1 1 D / InputMethodManager: prepareNavigationBarInfo () DecorView@80c6513 [MainActivity] getNavigationBarColor () -855310 D / InputMethodManager: prepareNavigationBarInfo () DecorView@80c6513 [входной доступ] / InputBo: ioni c .starter ic = пусто 148 D / ViewRootImpl@528b903 [MainActivity]: dispatchAttachedToWindow D / ViewRootImpl@528b903 [MainActivity]: возвращено реле: старый = [0,0] [1080,2220] новый = [0,0] [1080,2220] результат = 0x7 поверхность = {действует = истина 493740634112} изменено = истина D / mali_winsys: EGLint new_window_surface (egl_winsys_display *, пустота *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) возвращает 0x3000 D / OpenGLRenderer: eglCreateWindowSurface = 0x72f541f280, 0x72f53c3010 D / ViewRootImpl@84a84ac [MainActivi ty]: dispatchAttachedToWindow D / ViewRootImpl@84a84ac [MainActivity]: возвращено реле: old = [0,0] [1080,2220] new = [477,1047] [603,1173] result = 0x1 поверхность = {valid = false 0 } updated = false D / ViewRootImpl@528b903 [MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1 D / InputMethodManager: prepareNavigationBarInfo () android .widget.ImageView {607e080 V.ED ..... ...... ID 0,0 -1080,2220} getNavigationBarColor это представление не DecorView или null getNavigationBarColor () Сбой D / InputMethodManager: prepareNavigationBarInfo () android .widget.ImageView {607e080 V.ED ..... ...... ID 0, 0-1080,2220} getNavigationBarColor это представление не DecorView или null getNavigationBarColor () Fail V / InputMethodManager: начальный ввод: tba = io.ioni c .starter ic = null mNaviBarColor Fail mIsGetNavisBable: false False: Navis Naval: ложь D / InputMethodManager: startInputInner - Id: 0 I / InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus D / InputTransport: построен входной канал: fd = 152 W / InputMethodManager: игнорирование onBind : cur seq = 43450, заданный seq = 43449 D / InputTransport: канал ввода разрушен: fd = 148 D / ViewRootImpl@528b903 [MainActivity]: MSG_RESIZED: frame = Rect (0, 0 - 1080, 2220) ci = Rect (0, 63 - 0, 39) vi = Rect (0, 63 - 0, 39) или = 1 D / ViewRootImpl@edef802 [MainActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1 D / InputMethodManager: prepareNavigationBarInfo () DecorView@80c6513 [MainActivity] getNavigationBarColor () - 855310 D / Конденсатор: Обработка локального запроса: http://localhost/polyfills-es2015.js D / Конденсатор: Обработка локального запроса: http://localhost/runtime-es2015.js D / Конденсатор: Обработка локального запроса: http://localhost/vendor-es2015.js D / Конденсатор: Обработка локального запроса: http://localhost/main-es2015.js D / Конденсатор: Обработка локального запроса: http://localhost/styles-es2015.js I / Конденсатор / Консоль: Файл: http://localhost/vendor-es2015.js - Строка 69837 - Сообщение: Angular работает в режиме разработки. Вызовите enableProdMode (), чтобы включить производственный режим. D / конденсатор: обработка локального запроса: http://localhost/5-es2015.js D / конденсатор: обработка локального запроса: http://localhost/common-es2015.js D / конденсатор: обработка локального запроса: http://localhost/home-home-module-es2015.js I / Конденсатор / Консоль: Файл: http://localhost/vendor-es2015.js - Строка 117994 - Сообщение: Ioni c Собственный: событие deviceready сработало через 506 мс Вт / Конденсатор / Консоль: Файл: http://localhost/vendor-es2015.js - Строка 118299 - Сообщение: собственный: попытался вызвать StatusBar.styleDefault, но плагин StatusBar не установлен. Файл: http://localhost/vendor-es2015.js - Строка 118311 - Сообщение: установите плагин StatusBar: 'ioni c плагин cordova add cordova-plugin-statusbar' W / Capacitor / Console: Файл: http://localhost/vendor-es2015.js - Строка 118299 - Сообщение: собственный: попытался вызвать SplashScreen.hide, но плагин SplashScreen не установлен. Файл: http://localhost/vendor-es2015.js - Строка 118311 - Сообщение: установите плагин SplashScreen: 'ioni c плагин cordova add cordova-plugin-splashscreen' D / Capacitor: Обработка локального запроса: http://localhost/swipe-back-d2cdbf9a-js-es2015.js V / Capacitor / Plugin: Для встроенного (Capacitor plugin): callbackId: 125075709, pluginId: Геолокация, methodName: getCurrentPosition V / Capacitor: callback: 125075709, pluginId: Geolocation, methodName: getCurrentPosition, methodData: {} D / Capacitor: Обработка локального запроса: http://localhost/tap-click-606f325e-js-es2015.js V / Capacitor / Plugin: в нативный (Плагин конденсатора): callbackId: 125075710, pluginId: App, methodName: addListener V / Capacitor: обратный вызов: 125075710, pluginId: App, methodName: addListener, methodData: {"eventName": "backButton"} D / Capacitor: Обработка локального запроса : http://localhost/focus-visible-70713a0c-js-es2015.js D / конденсатор: обработка локального запроса: http://localhost/status-tap-2ec46489-js-es2015.js D / конденсатор: обработка локального запроса: http://localhost/assets/icon/favicon.png D / TcpOptimizer: TcpOptimizer- ON D / NetworkSecurityConfig: Конфигурация сетевой безопасности не указана, используется платформа по умолчанию. V / Capacitor / Plugin: Для собственного (плагин Capacitor): callbackId: 125075711, pluginId: Geolocation, methodName: watchPosition V / Capacitor: callback: 125075711, pluginId: Geolocation, methodName: watchPosition, methodData: {} I / Capacitor / Console: Файл: http://localhost/home-home-module-es2015.js - Строка 2796 - Сообщение: новая позиция: 51.9294869-8.5130874 D / Capacitor: Обработка локального запроса: http://localhost/33-es2015.js D / Capacitor: SplashScreen автоматически скрывался по истечении времени ожидания запуска. Вы должны вызвать SplashScreen.hide(), как только ваше веб-приложение будет загружено (или увеличить время ожидания). Подробнее на https://capacitor.ionicframework.com/docs/apis/splash-screen/#hiding -the-spla sh -screen W / libEGL: EGLNativeWindowType 0x72f53c3010 не удалось отключиться D / OpenGLRenderer: eglDestroySurface = 0x72f541f280, 0x72f53c3000 D / ViewRootImpl@528b903 [MainActivity]: возвращено реле: old = [0,0] [1080,2220] new = [0,0] [1080,2220] result = 0x5 surface = {valid = false 0} изменено = true D / ViewRootImpl@528b903 [MainActivity]: dispatchDetachedFromWindow Поверхностный выпуск. android .view.ViewRootImpl.doD ie: 7954 android .view.ViewRootImpl $ ViewRootHandler.handleMessage: 4955 android .os.Handler.dispatchMessage: 106 android .os.Looper.l oop : 214 android .app.ActivityThread.main: 6986 java .lang.reflect.Mehod.invoke: -2 com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run: 494 com. android. internal.os.ZygoteInit.main: 1445 D / InputTransport: канал ввода разрушен: fd = 146 E / ViewRootImpl: sendUserActionEvent () возвращено. D / ViewRootImpl@edef802 [MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1 D / InputMethodManager: prepareNavigationBarInfo () DecorView@80c6513 [MainActivity] getNavigationBarColor () -855310 D / InputMethodManager: prepareNavigationBarInorBorIn153 (5) (133) -153) InputMethodManager: начальный ввод: tba = io.ioni c .starter ic = null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true, NavVisible: true, NavTrans: false D / InputMethodManager: startInputInnerM: источник ввода-вывода: 0: / InputTransport: построен входной канал: fd = 149 D / InputTransport: разрушен входной канал: fd = 152 E / Capacitor / Console: Файл: https://maps.googleapis.com/maps/api/js?key=MY_API_KEY - Строка 55 - Сообщение: Вы должны включить Billing на Облачный проект Google в https://console.cloud.google.com/project/_/billing/enable Подробнее о https://developers.google.com/maps/gmp-get-started D / ViewRootImpl@edef802 [MainActivity]: указатель ViewPostIme 0 D / ViewRootImpl@edef802 [MainActivity]: указатель ViewPostIme 1 D / InputMethodManager: prepareNavigationBarInfo () DecorView@80c6513 [MainActivity] getNavigationBarCol or () -855310 V / InputMethodManager: начальный ввод: tba = io.ioni c .starter ic = null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true, NavVisible: true, NavTrans: false D / InputMethodInan: IGM: Input / IdManager: IG InputMethodInan: 0 : startInputInner - mService.startInputOrWindowGainedFocus D / InputTransport: построен входной канал: fd = 197 D / InputTransport: разрушен входной канал: fd = 149 D / InputMethodManager: HSIFW - флаг: 0 Pid: 29347 I / o.ioni c .starte : Компилятор выделил 4 МБ для компиляции void android .view.ViewRootImpl.performTraversals () I / Capacitor / Console: Файл: http://localhost/home-home-module-es2015.js - Строка 2796 - Сообщение: новая позиция: 51.9294876-8.5130852

...