简体   繁体   中英

System.ObjectDisposedException: Cannot access a disposed object in Xamarin

I am using this SlidingMenuSharp library developed by Cheesebaron from past years in my project it never gave me any issues and was working perfectly. Currently i am upgrading my app to target API level 24 and its crashing occasionally without any proper reason. Below is the error log, kindly help, it is very important.

[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] System.ObjectDisposedException: Cannot access a disposed object.
[MonoDroid] Object name: 'Android.Widget.Scroller'.
[MonoDroid] at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00030] in /Users/builder/data/lanes/3511/501e63ce/source/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.cs:153
[MonoDroid] at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualBooleanMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00002] in /Users/builder/data/lanes/3511/501e63ce/source/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods_Invoke.cs:73
[MonoDroid] at Android.Widget.Scroller.get_IsFinished () [0x00000] in /Users/builder/data/lanes/3511/501e63ce/source/monodroid/src/Mono.Android/platforms/android-24/src/generated/Android.Widget.Scroller.cs:218
[MonoDroid] at SlidingMenuSharp.CustomViewAbove.ComputeScroll () [0x00001] in <644015490a8d4e6a9989999589722a33>:0
[MonoDroid] at Android.Views.View.n_ComputeScroll (System.IntPtr jnienv, System.IntPtr native__this) [0x00009] in /Users/builder/data/lanes/3511/501e63ce/source/monodroid/src/Mono.Android/platforms/android-24/src/generated/Android.Views.View.cs:11484
[MonoDroid] at (wrapper dynamic-method) System.Object:0d8f5eb4-78f9-44d3-b8a3-f9afc5137b0a (intptr,intptr)
[Mono] DllImport searching in: '__Internal' ('(null)').
[Mono] Searching for 'java_interop_jnienv_throw'.
[Mono] Probing 'java_interop_jnienv_throw'.
[Mono] Found as 'java_interop_jnienv_throw'.

It seems to me that problem comes from the mono's new design of the GC Bridge - Tarjan.

To switch bridge implementation to the old one try adding a file to your project, like environment.txt, with build option set to AndroidEnvironment with following content:

MONO_GC_PARAMS=bridge-implementation=old

更新到表单2.4.0.266-pre1修复了此问题。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM