首页 > 解决方案 > AndroidX 迁移错误 Android.Content.Res.Resources+NotFoundException: 'Resource ID #0x7f0b0047'

问题描述

我有MvvmCrossXamarin Forms 项目。我右键单击 Android 项目并迁移到 AndroidX。现在,当我运行时,我得到了错误。请帮忙

Android.Content.Res.Resources+NotFoundException: '资源 ID #0x7f0b0047'

[Activity(Label = "MyApp", Icon = "@drawable/icon", MainLauncher = false, ScreenOrientation = ScreenOrientation.Portrait)]
    public class MainActivity : MvxFormsAppCompatActivity
    {
        public static MainActivity Instanace;
        protected override void OnCreate(Bundle bundle)
        {
            Instanace = this;
            Xamarin.Essentials.Platform.Init(this, bundle);

            base.Window.RequestFeature(WindowFeatures.ActionBar);
            // Name of the MainActivity theme you had there before.
            // Or you can use global::Android.Resource.Style.ThemeHoloLight
            //base.SetTheme(Resource.Style.MainTheme);

            base.OnCreate(bundle); *------------------Here I get error*
            TabLayoutResource = Resource.Layout.tabs;
            ToolbarResource = Resource.Layout.toolbar;
        }

标签: xamarinxamarin.formsxamarin.androidmvvmcross

解决方案


我能够在我的应用程序中克服这个错误。它失败了FormsAppCompatActivity.OnCreate(Bundle savedInstanceState, ActivationFlags flags),什么时候ToolbarResource没有设置。这导致以下代码运行:https ://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs#L235

事实证明,充气Resource.Layout.Toolbar是有问题的,并导致您描述的错误。

解决方法是在调用之前ToolbarResource分配(从您的资源中指定Resource.Layout资源。MainActivity base.OnCreate()


推荐阅读