Приложение Xamarin Android зависает на заставке

Мы разрабатываем приложение Xamarin Android, используя ReactiveUI. Ниже приведены технические характеристики.

  • Visual Studio 2017 15.7.4
  • Целевая структура - Моно Android 8.0
  • NetStandard 2.0
  • ReactiveUI 8.2
  • Поддержка Xamarin Android 26.1.1
  • CompileSdkVersion - уровень API 26 (Android 8.0)
  • TargetSdkVersion - уровень API 26 (Android 8.0)
  • MinSdkVersion - уровень API 19 (Android 4.4)

Конфигурации выпуска My Project Properties приведены ниже.

Я протестировал всю разработку с использованием Huawei API 19 (НАБОР ИНСТРУКЦИЙ - armeabi-v8a). Все прошло нормально с конфигурациями отладки и выпуска. В качестве темы приложения я использовал настраиваемую тему из Theme.appCompat. И у меня есть styles.xml в папках values ​​и values-v21. У обоих одно и то же имя. Я использовал ProcessDialog в Splashing screen, который определен как устаревший. В чем проблема? Я новичок в Xamarin Android. Заранее спасибо.

Обновлять: Вот как выглядит мой MainActivity.cs.

using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.Graphics.Drawables;
using Android.OS;
using Android.Support.Design.Widget;
using Android.Support.V4.View;
using Android.Support.V4.Widget;
using Android.Support.V7.App;
using Android.Util;
using Android.Views;
using Android.Widget;
using DistributrIII.Mobile.Droid.Activities.Errors;
using DistributrIII.Mobile.Droid.Activities.Login;
using DistributrIII.Mobile.Droid.Activities.PointOfSale;
using DistributrIII.Mobile.Droid.Fragments.CloseOfTheDay;
using DistributrIII.Mobile.Droid.Fragments.Common;
using DistributrIII.Mobile.Droid.Fragments.Lossess;
using DistributrIII.Mobile.Droid.Fragments.Orders;
using DistributrIII.Mobile.Droid.Fragments.Outlets;
using DistributrIII.Mobile.Droid.Fragments.PointOfSale;
using DistributrIII.Mobile.Droid.Fragments.Reports;
using DistributrIII.Mobile.Droid.Fragments.SaleOrder;
using DistributrIII.Mobile.Droid.Fragments.PurchaseOrder;
using DistributrIII.Mobile.Droid.Fragments.Settings;
using DistributrIII.Mobile.Droid.Util;
using DistributrIII.Mobile.Lib.Model.Common;
using DistributrIII.Mobile.Lib.Model.Login;
using DistributrIII.Mobile.Lib.Model.Sync;
using DistributrIII.Mobile.Lib.VM.MainActivity;
using DistributrIII.Mobile.Lib.VM.Util;
using Java.Interop;
using Java.IO;
using ReactiveUI;
using System;
using System.Reactive.Concurrency;
using System.Reactive.Linq;
using System.Threading;
using System.Threading.Tasks;
using static Android.Support.V7.App.ActionBar;
using static Android.Support.V7.Widget.SearchView;
using Environment = Android.OS.Environment;
using SearchView = Android.Support.V7.Widget.SearchView;
using DistributrIII.Mobile.Droid.Fragments.OpenTransactions;

namespace DistributrIII.Mobile.Droid
{
    [Activity(Label = "DistributrIII", MainLauncher = false, Theme = "@style/MainTheme")]
    public class MainActivity : DistributrBaseActivity<MainActivityVM>
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);            
            SetContentView(Resource.Layout.activity_main);
            SetupUI(savedInstanceState);
        }

        #region UI Components
        DrawerLayout drawerLayout;
        NavigationView navigationView;
        IMenuItem previousItem;
        Android.Support.V7.Widget.Toolbar toolbar;
        DisplayScreen PreviousMenuItemId = DisplayScreen.None;
        SearchView searchControl;
        ProgressDialog progress;
        #endregion

        #region UI Helper Methods

        public override bool OnCreateOptionsMenu(IMenu menu)
        {
            return base.OnPrepareOptionsMenu(menu);
        }


    private void SetupUI(Bundle savedInstanceState) {

        toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
        toolbar.InflateMenu(Resource.Menu.main_menu);

        searchControl = (SearchView)toolbar.Menu.FindItem(Resource.Id.distributr_search).ActionView ;

        var textChangedObservable =
            Observable
                .FromEventPattern<QueryTextChangeEventArgs>(
                    x => searchControl.QueryTextChange += x,
                    x => searchControl.QueryTextChange -= x)
                .Select(x => x.EventArgs.NewText)
                .Throttle(TimeSpan.FromSeconds(1), TaskPoolScheduler.Default);


        var querySubmitObservable =
            Observable
                .FromEventPattern<QueryTextSubmitEventArgs>(
                    x => searchControl.QueryTextSubmit += x,
                    x => searchControl.QueryTextSubmit -= x)
                .Select(x => x.EventArgs.Query);

        SubscriptionDisposables.Add(
            Observable
                .Merge(textChangedObservable, querySubmitObservable)
                .Subscribe(async searchText =>  this.HandleSearch(searchText))

        );

        SetupNavigation(savedInstanceState);
        BottomNavigationView navigationView = (BottomNavigationView)FindViewById(Resource.Id.bottom_navigation);

        if (DIIIStaticStorage.LoginAccountType == LoginAccountType.Customer)
        {
            navigationView.InflateMenu(Resource.Menu.nav_bottom_customr);
        }
        else
        {
            navigationView.InflateMenu(Resource.Menu.nav_bottom);
        }

        navigationView.NavigationItemSelected += BottomNavigation_NavigationItemSelected;
        Android.Support.Design.Internal.BottomNavigationMenuView menuView = (Android.Support.Design.Internal.BottomNavigationMenuView)navigationView.GetChildAt(0);
        for (int i = 0; i < menuView.ChildCount; i++)
        {
            Android.Support.Design.Internal.BottomNavigationItemView itemView = (Android.Support.Design.Internal.BottomNavigationItemView)menuView.GetChildAt(i);
            itemView.SetShiftingMode(false);
            itemView.SetChecked(false);
        }

        //InvalidateOptionsMenu();
        toolbar.Title = "Distributr";
    }
}

Я наблюдал, что это застряло в режиме отладки также на некоторых устройствах. бревно может кто-нибудь показать мне, в чем ошибка. Еще раз спасибо

Вы можете показать код?

FreakyAli 19.07.2018 07:02

Я обновил вопрос с помощью фрагмента кода MainActivity.cs

Gayan Buddhika 19.07.2018 07:20

Привет, мой друг, возможно, вам стоит протестировать свое приложение с помощью более старой версии VS, VS 15.7 имеет некоторые проблемы с xamarin.

Adrián Romero 19.07.2018 17:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
609
0

Другие вопросы по теме