SlidingMenuSharp System.ObjectDisposedException: 无法访问已释放的对象。对象名称:'Android.Widget.Scroller'

SlidingMenuSharp System.ObjectDisposedException: Cannot access a disposed object. Object name: 'Android.Widget.Scroller'

我们有一个 Xamarin.Android 7 应用程序。 我们收到以下导致应用程序崩溃的异常。 它说了一些关于 Android.Widget.Scroller 的事情,但我们并没有在我们的应用程序中的任何地方明确使用这个组件。 不过,我们在 xaml 个文件中使用 ScrollView 和 GridView。

我们遇到的一个解决方案是回到 Xamarin.Android 6,但由于应用程序要求,这不是一个可行的解决方案。 我们遇到的另一种解决方案是使用 ListViewCachingStrategy,但在 Xamarin.Android.

中找不到如何做到这一点

请在这里帮助我们,这是我们任务中的一个巨大障碍。

System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Android.Widget.Scroller'.
at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00029] in <5716a943049b49ca928a3a1c8d2386f4>:0 
at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualBooleanMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00000] in <5716a943049b49ca928a3a1c8d2386f4>:0 
at Android.Widget.Scroller.get_IsFinished () [0x0000a] in <8804aaaf21bc4f45b576b50092b57059>:0 
at SlidingMenuSharp.CustomViewAbove.ComputeScroll () [0x00001] in <20b4998942db4089b3ed88297710fab6>:0 
at Android.Views.View.n_ComputeScroll (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in <8804aaaf21bc4f45b576b50092b57059>:0 
at (wrapper dynamic-method) System.Object:0044ef4c-4a4e-4ecd-8301-8be4cc63baea (intptr,intptr)

使用 new GC Bridge 与默认 tarjan:

MONO_GC_PARAMS=bridge-implementation=new

在您的 Xamarin.Android 项目中创建一个文本文件并在其上设置构建类型 AndroidEnvironment 并包含上面的 MONO_GC_PARAMS 行。

重建并测试您的项目。

回复:https://developer.xamarin.com/guides/android/advanced_topics/garbage_collection/#GC_Bridge_Options

将 Xamarin.Forms 更新到 2.4.0-pre1,它应该已修复。