【问题标题】:Xamarin Android.FormsAppCompatActivity NullReferenceException on Startup启动时 Xamarin Android.FormsAppCompatActivity NullReferenceException
【发布时间】:2017-03-26 18:47:53
【问题描述】:

为了发现这个问题,我尽可能地精简了我的应用程序。仍然出现:

11-12 15:56:27.908 I/MonoDroid(17629): System.NullReferenceException: Object reference not set to an instance of an object.
11-12 15:56:27.908 I/MonoDroid(17629):   at Xamarin.Forms.Platform.Android.AppCompat.Platform.LayoutRootPage (Xamarin.Forms.Page page, System.Int32 width, System.Int32 height) [0x0005d] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:279 
11-12 15:56:27.908 I/MonoDroid(17629):   at Xamarin.Forms.Platform.Android.AppCompat.Platform.Xamarin.Forms.Platform.Android.IPlatformLayout.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x00003] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:196 
11-12 15:56:27.908 I/MonoDroid(17629):   at Xamarin.Forms.Platform.Android.PlatformRenderer.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x0000e] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\PlatformRenderer.cs:73 
11-12 15:56:27.908 I/MonoDroid(17629):   at Android.Views.ViewGroup.n_OnLayout_ZIIII (System.IntPtr jnienv, System.IntPtr native__this, System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x00009] in /Users/builder/data/lanes/3511/ce955cc0/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.Views.ViewGroup.cs:3427 
11-12 15:56:27.908 I/MonoDroid(17629):   at (wrapper dynamic-method) System.Object:784a0fc1-dc7c-42ec-831f-0701fd382e8e (intptr,intptr,bool,int,int,int,int)
11-12 15:56:27.925 W/art     (17629): JNI RegisterNativeMethods: attempt to register 0 native methods for android.runtime.JavaProxyThrowable

这是我的 Android 活动

[Activity(Label = "Bol",Icon = "@drawable/icon",MainLauncher = true,Theme = "@style/MyTheme.Splash", NoHistory = true)]
public class MainActivity : FormsAppCompatActivity

对于启动画面,我有以下值/styles.xml

<resources>
 <style name="MyTheme.Splash" parent ="Theme.AppCompat.Light.NoActionBar">
  <item name="android:windowBackground">@drawable/splash_screen</item>
  <item name="android:windowNoTitle">true</item>
  <item name="android:windowActionBar">false</item>
  <item name="android:windowFullscreen">true</item>
  <item name="android:actionBarSize">0dp</item>
 </style>
</resources>

还有drawable/splash_screen.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="#000000"/>
</item>
<item>
<bitmap
    android:src="@drawable/icon"
    android:tileMode="disabled"
    android:gravity="center"/>
</item>
</layer-list>

还有 Xamarin (Prism) 应用程序

public class App : PrismApplication
{
    public App(IPlatformInitializer initializer = null) : base(initializer) { }

    protected override void OnInitialized()
    {
        Logger = Container.Resolve(typeof(ILogger), null, new CompositeResolverOverride()) as ILoggerFacade;
        var navigationPage = "NavigationPage/MainMenu";
        NavigationService.NavigateAsync(navigationPage);
    }
}

MainMenu 只是一个空的 ContentPage。

我没有看到任何关于在 Xamarin.Forms.Platform.Android.AppCompat.Platform.LayoutRootPage 期间导致 NullReference 的提示

【问题讨论】:

  • 即使我在 App 中关闭 OnInitialized() 中的所有 3 行,它也会出现。所以它似乎与我的 Xamarin.Forms 应用程序没有任何关系。只需使用 Android...

标签: android xamarin prism nullreferenceexception


【解决方案1】:

OnInitialized 标记为 asyncawait NavigationService.NavigateAsync(navigationPage);。这应该可以解决您的问题。

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多