Xamarin.android Xamarin Android应用程序在启动屏幕上挂起

Xamarin.android Xamarin Android应用程序在启动屏幕上挂起,xamarin.android,release,android-appcompat,android-8.0-oreo,reactiveui,Xamarin.android,Release,Android Appcompat,Android 8.0 Oreo,Reactiveui,我们正在使用ReactiveUI开发一款Xamarin Android应用程序。技术规格如下: Visual Studio 2017 15.7.4 目标框架-Mono Android 8.0 NetStandard2.0 反应UI 8.2 Xamarin Android支持26.1.1 CompileSDK版本-API级别26(Android 8.0) TargetSdkVersion-API级别26(安卓8.0) MinSDK版本-API级别19(安卓4.4) 我的项目属性发布配置如下

我们正在使用ReactiveUI开发一款Xamarin Android应用程序。技术规格如下:

  • Visual Studio 2017 15.7.4
  • 目标框架-Mono Android 8.0
  • NetStandard2.0
  • 反应UI 8.2
  • Xamarin Android支持26.1.1
  • CompileSDK版本-API级别26(Android 8.0)
  • TargetSdkVersion-API级别26(安卓8.0)
  • MinSDK版本-API级别19(安卓4.4)
我的项目属性发布配置如下

我使用华为API 19(指令集-armeabi-v8a)测试了整个开发过程。调试和发布配置正常。 我使用theme.appCompat中的自定义主题作为应用程序主题。我在values和values-v21文件夹中有styles.xml。两个名字都一样。我在Splashing screen中使用了一个ProcessDialog,它被确定为已弃用。问题在哪里?我是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";
    }
}
使用Android.App;
使用Android.Content;
使用Android.Content.PM;
使用Android.Graphics.Drawables;
使用Android.OS;
使用Android.Support.Design.Widget;
使用Android.Support.V4.View;
使用Android.Support.V4.Widget;
使用Android.Support.V7.App;
使用Android.Util;
使用Android.Views;
使用Android.Widget;
使用DistributrIII.Mobile.Droid.Activities.Errors;
使用distririii.Mobile.Droid.Activities.Login;
使用DistributrIII.Mobile.Droid.Activities.PointOfSale;
使用DistributrIII.Mobile.Droid.Fragments.Closeof Day;
使用DistributrIII.Mobile.Droid.Fragments.Common;
使用DistributrIII.Mobile.Droid.Fragments.Lossess;
使用DistributrIII.Mobile.Droid.Fragments.Orders;
使用DistributrIII.Mobile.Droid.Fragments.Outlets;
使用DistributrIII.Mobile.Droid.Fragments.PointOfSale;
使用DistributrIII.Mobile.Droid.Fragments.Reports;
使用DistributrIII.Mobile.Droid.Fragments.SaleOrder;
使用DistributrIII.Mobile.Droid.Fragments.PurchaseOrder;
使用DistributrIII.Mobile.Droid.Fragments.Settings;
使用distririii.Mobile.Droid.Util;
使用distririii.Mobile.Lib.Model.Common;
使用distribriii.Mobile.Lib.Model.Login;
使用distribriii.Mobile.Lib.Model.Sync;
使用DistributrIII.Mobile.Lib.VM.main活动;
使用distririii.Mobile.Lib.VM.Util;
使用Java.Interop;
使用Java.IO;
使用ReactiveUI;
使用制度;
使用System.Reactive.Concurrency;
使用System.Reactive.Linq;
使用系统线程;
使用System.Threading.Tasks;
使用静态Android.Support.V7.App.ActionBar;
使用静态Android.Support.V7.Widget.SearchView;
使用环境=Android.OS.Environment;
使用SearchView=Android.Support.V7.Widget.SearchView;
使用DistributrIII.Mobile.Droid.Fragments.OpenTransactions;
命名空间DistributrIII.Mobile.Droid
{
[活动(Label=“distririii”,MainLauncher=false,Theme=“@style/MainTheme”)]
公共类MainActivity:DistributerBaseAActivity
{
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
SetupUI(savedInstanceState);
}
#区域用户界面组件
抽屉布局抽屉布局;
导航视图导航视图;
IMenuItem先前的项目;
Android.Support.V7.Widget.Toolbar工具栏;
DisplayScreen PreviousMenuItemId=显示屏。无;
搜索视图搜索控制;
进程对话进程;
#端区
#区域UI辅助方法
公共覆盖布尔onCreateOptions菜单(IMenu菜单)
{
返回base.onPrepareOptions菜单(菜单);
}
私有void设置UI(Bundle savedInstanceState){

toolbar=FindViewById有人能告诉我错误是什么吗?再次感谢

你能显示一些代码吗?我已经用MainActivity.cs代码片段更新了这个问题嗨,我的朋友,可能你应该用旧版本的VS测试你的应用,VS 15.7与xamarin有一些问题。