2

我得到的错误非常没用:

[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] System.NullReferenceException: Object reference not set to an instance of an object
[MonoDroid] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000b] in /Users/builder/data/lanes/2185/53fce373/source/mono/mcs/class/corlib/System.Runtime.ExceptionServices/ExceptionDispatchInfo.cs:61
[MonoDroid] at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>m__0 (object) [0x00000] in /Users/builder/data/lanes/2185/53fce373/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1006
[MonoDroid] at Android.App.SyncContext/<Post>c__AnonStorey0.<>m__0 () [0x00000] in /Users/builder/data/lanes/2185/53fce373/source/monodroid/src/Mono.Android/src/Android.App/SyncContext.cs:18
[MonoDroid] at Java.Lang.Thread/RunnableImplementor.Run () [0x0000b] in /Users/builder/data/lanes/2185/53fce373/source/monodroid/src/Mono.Android/src/Java.Lang/Thread.cs:36
[MonoDroid] at Java.Lang.IRunnableInvoker.n_Run (intptr,intptr) [0x00009] in /Users/builder/data/lanes/2185/53fce373/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Java.Lang.IRunnable.cs:71
[MonoDroid] at (wrapper dynamic-method) object.51b21b24-f225-4055-ba6f-89c907c5f353 (intptr,intptr) <IL 0x00011, 0x0001f>

当我加载 TabbedPage 时,我可以看到正在显示的选项卡然后发生此崩溃。

这是我的 Tabs.axml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TabLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/sliding_tabs"
/>

这是我的设置方式:

        FormsAppCompatActivity.TabLayoutResource = Resource.Layout.tabs;

我错过了什么?

4

1 回答 1

2

您获得“无用”堆栈跟踪的原因可能是由于异步 void 方法引发了异常。Mono 框架中存在导致这种情况发生的问题。有关这方面的更多信息,请参阅此 bugzilla 条目

如果您需要准确的堆栈跟踪,您可以尝试将 Xamarin.Android 升级到 Alpha 通道(我相信堆栈跟踪问题已修复)。

如果您无法做到这一点,您可以尝试在选项卡初始化或页面的 OnAppearing 期间运行的任何异步 void 方法中设置断点,并尝试缩小抛出异常的方法/行。

于 2015-10-26T16:21:54.793 回答