Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

bug: Cannot access a disposed object. #3418

Closed
Ali-YousefiTelori opened this issue Jul 27, 2018 · 11 comments
Closed

bug: Cannot access a disposed object. #3418

Ali-YousefiTelori opened this issue Jul 27, 2018 · 11 comments

Comments

@Ali-YousefiTelori
Copy link

Ali-YousefiTelori commented Jul 27, 2018

Hi, one of my custommer had an unhandle exception problem for some times,

error details:

`unhandle exception
App Version: 27
App OS: Android
OS Version: 23
Device Name: Model: LG-D855 Manufacturer: LGE Product: g3_global_com

System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Android.Graphics.Bitmap'.
at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00029] in <9a502bcc041544619296553c2ae50fb1>:0
at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeAbstractVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00000] in <9a502bcc041544619296553c2ae50fb1>:0
at Android.Graphics.Bitmap.Recycle () [0x0000a] in :0
at Xamarin.Forms.Platform.Android.ButtonDrawable.Reset () [0x00008] in <7999cc4bd5664eca8a72469344172ca3>:0
at Xamarin.Forms.Platform.Android.ButtonDrawable.Dispose (System.Boolean disposing) [0x00013] in <7999cc4bd5664eca8a72469344172ca3>:0
at Java.Lang.Object.Dispose () [0x00000] in :0
at Xamarin.Forms.Platform.Android.ButtonBackgroundTracker.Dispose (System.Boolean disposing) [0x00015] in <7999cc4bd5664eca8a72469344172ca3>:0
at Xamarin.Forms.Platform.Android.ButtonBackgroundTracker.Dispose () [0x00000] in <7999cc4bd5664eca8a72469344172ca3>:0
at Xamarin.Forms.Platform.Android.ButtonRenderer.Dispose (System.Boolean disposing) [0x0001d] in <7999cc4bd5664eca8a72469344172ca3>:0
at Java.Lang.Object.Dispose () [0x00000] in :0
at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].Dispose (System.Boolean disposing) [0x0007b] in <7999cc4bd5664eca8a72469344172ca3>:0 at Java.Lang.Object.Dispose () [0x00000] in <e447ed81219e4724abfc9f961bbeeb0a>:0 at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].Dispose (System.Boolean disposing) [0x0007b] in <7999cc4bd5664eca8a72469344172ca3>:0
at Java.Lang.Object.Dispose () [0x00000] in :0
at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].Dispose (System.Boolean disposing) [0x0007b] in <7999cc4bd5664eca8a72469344172ca3>:0 at Java.Lang.Object.Dispose () [0x00000] in <e447ed81219e4724abfc9f961bbeeb0a>:0 at Xamarin.Forms.Platform.Android.ScrollViewContainer.Dispose (System.Boolean disposing) [0x00020] in <7999cc4bd5664eca8a72469344172ca3>:0 at Java.Lang.Object.Dispose () [0x00000] in <e447ed81219e4724abfc9f961bbeeb0a>:0 at Xamarin.Forms.Platform.Android.ScrollViewRenderer.Dispose (System.Boolean disposing) [0x00042] in <7999cc4bd5664eca8a72469344172ca3>:0 at Java.Lang.Object.Dispose () [0x00000] in <e447ed81219e4724abfc9f961bbeeb0a>:0 at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].Dispose (System.Boolean disposing) [0x0007b] in <7999cc4bd5664eca8a72469344172ca3>:0
at Java.Lang.Object.Dispose () [0x00000] in :0
at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].Dispose (System.Boolean disposing) [0x0007b] in <7999cc4bd5664eca8a72469344172ca3>:0 at Java.Lang.Object.Dispose () [0x00000] in <e447ed81219e4724abfc9f961bbeeb0a>:0 at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].Dispose (System.Boolean disposing) [0x0007b] in <7999cc4bd5664eca8a72469344172ca3>:0
at Java.Lang.Object.Dispose () [0x00000] in :0
at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].Dispose (System.Boolean disposing) [0x0007b] in <7999cc4bd5664eca8a72469344172ca3>:0
at Xamarin.Forms.Platform.Android.PageRenderer.Dispose (System.Boolean disposing) [0x00011] in <7999cc4bd5664eca8a72469344172ca3>:0
at Java.Lang.Object.Dispose () [0x00000] in :0
at Xamarin.Forms.Platform.Android.AppCompat.FragmentContainer.OnDestroyView () [0x0003c] in <7999cc4bd5664eca8a72469344172ca3>:0
at Android.Support.V4.App.Fragment.n_OnDestroyView (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in :0
at (wrapper dynamic-method) System.Object.363274fc-2062-4cad-8857-6f6f215738aa(intptr,intptr)

Time : 23/07/2018 02:07:04 ب.ظ.

App Version: 27 App OS: Android OS Version: 23 Device Name: Model: LG-D855 Manufacturer: LGE Product: g3_global_com AndroidStreamCross a7bcbaa7-ce8c-4aa5-8b51-6c1ef329c45a dispose 23/07/2018 02:07:05 ب.ظ. App Version: 27 App OS: Android OS Version: 23 Device Name: Model: LG-D855 Manufacturer: LGE Product: g3_global_com unhandle 3 type:Java.Lang.RuntimeException ex:Java.Lang.RuntimeException: Fragment FragmentContainer{ed3f74c #3 id=0x6} did not call through to super.onDestroyView() --- End of managed Java.Lang.RuntimeException stack trace --- android.support.v4.app.SuperNotCalledException: Fragment FragmentContainer{ed3f74c #3 id=0x6} did not call through to super.onDestroyView() at android.support.v4.app.Fragment.performDestroyView(Fragment.java:2482) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1422) at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1569) at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:753) at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415) at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2201) at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2155) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2064) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:718) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5527) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) IsTerminating:True 23/07/2018 02:07:05 ب.ظ.

unhandle exception 3 True
App Version: 27
App OS: Android
OS Version: 23
Device Name: Model: LG-D855 Manufacturer: LGE Product: g3_global_com

Java.Lang.RuntimeException: Fragment FragmentContainer{ed3f74c #3 id=0x6} did not call through to super.onDestroyView()
--- End of managed Java.Lang.RuntimeException stack trace ---
android.support.v4.app.SuperNotCalledException: Fragment FragmentContainer{ed3f74c #3 id=0x6} did not call through to super.onDestroyView()
at android.support.v4.app.Fragment.performDestroyView(Fragment.java:2482)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1422)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1569)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:753)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2201)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2155)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2064)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:718)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5527)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)

Time : 23/07/2018 02:07:05 ب.ظ.

App Version: 27 App OS: Android OS Version: 23 Device Name: Model: LG-D855 Manufacturer: LGE Product: g3_global_com unhandle 3 type:Java.Lang.RuntimeException ex:Java.Lang.RuntimeException: Fragment FragmentContainer{ed3f74c #3 id=0x6} did not call through to super.onDestroyView() --- End of managed Java.Lang.RuntimeException stack trace --- android.support.v4.app.SuperNotCalledException: Fragment FragmentContainer{ed3f74c #3 id=0x6} did not call through to super.onDestroyView() at android.support.v4.app.Fragment.performDestroyView(Fragment.java:2482) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1422) at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1569) at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:753) at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415) at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2201) at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2155) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2064) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:718) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5527) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) IsTerminating:True 23/07/2018 02:07:05 ب.ظ.

unhandle exception 3 True
App Version: 27
App OS: Android
OS Version: 23
Device Name: Model: LG-D855 Manufacturer: LGE Product: g3_global_com
Java.Lang.RuntimeException: Fragment FragmentContainer{ed3f74c #3 id=0x6} did not call through to super.onDestroyView()
--- End of managed Java.Lang.RuntimeException stack trace ---
android.support.v4.app.SuperNotCalledException: Fragment FragmentContainer{ed3f74c #3 id=0x6} did not call through to super.onDestroyView()
at android.support.v4.app.Fragment.performDestroyView(Fragment.java:2482)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1422)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1569)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:753)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2201)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2155)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2064)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:718)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5527)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)`

@AmrAlSayed0
Copy link

Probably duplicate of #2004

@jassmith
Copy link

Yup I agree, this appears to be a dup of 2004

@Bhauraj001
Copy link

Hi,

Is the fix pushed to live?

@Bhauraj001
Copy link

Bhauraj001 commented Jul 30, 2018

Hi,

Can you confirm below error is also part of this fix,

JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self)
System.ObjectDisposedException: Cannot access a disposed object. Object name: 'Xamarin.Forms.Platform.Android.AppCompat.ButtonRenderer'.
JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self)
JniPeerMembers+JniInstanceMethods.InvokeNonvirtualObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue
parameters)
View.get_Context ()
ButtonRenderer.UpdateBitmap ()
ButtonRenderer.OnElementPropertyChanged (System.Object sender, System.ComponentModel.PropertyChangedEventArgs e)
(wrapper delegate-invoke) .invoke_void_object_PropertyChangedEventArgs(object,System.ComponentModel.PropertyChangedEventArgs)
BindableObject.OnPropertyChanged (System.String propertyName)
Element.OnPropertyChanged (System.String propertyName)
BindableObject.SetValueActual (Xamarin.Forms.BindableProperty property, Xamarin.Forms.BindableObject+BindablePropertyContext context, System.Object value, System.Boolean currentlyApplying, Xamarin.Forms.Internals.SetValueFlags attributes, System.Boolean silent)
BindableObject.SetValueCore (Xamarin.Forms.BindableProperty property, System.Object value, Xamarin.Forms.Internals.SetValueFlags attributes, Xamarin.Forms.BindableObject+SetValuePrivateFlags privateAttributes)
BindingExpression.ApplyCore (System.Object sourceObject, Xamarin.Forms.BindableObject target, Xamarin.Forms.BindableProperty property, System.Boolean fromTarget)
BindingExpression.Apply (System.Boolean fromTarget)
BindingExpression+BindingExpressionPart.b__49_0 ()
Thread+RunnableImplementor.Run ()
IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this)
(wrapper dynamic-method) System.Object.0fa052d2-505e-4538-a06d-cc6a7f2bcb69(intptr,intptr)
*

@Ali-YousefiTelori
Copy link
Author

@jassmith I got this error in last version of xamarin forms, if that fixed on 2004 is your mean this is not fixed?

@Bhauraj001
Copy link

No.. I just wanted to know, error mentioned above(my comment) is also fixed part of this bug. Can you please confirm the fix is pushed to live?

@Ali-YousefiTelori
Copy link
Author

I think not, because your stacktrace is different.

@Bhauraj001
Copy link

my app is crashed with same stacktrace multiple time, Can anyone knows the fix?

@PureWeen
Copy link
Contributor

PureWeen commented Aug 3, 2018

@Ali-YousefiTelori
@Bhauraj001

This should be fixed in the upcoming 3.2 release by this PR
#3459

@Ali-YousefiTelori
Copy link
Author

@PureWeen thank you I will check it and if not fixed comment here again.

@PureWeen
Copy link
Contributor

PureWeen commented Aug 6, 2018

@Ali-YousefiTelori

Here's the nuget package from the PR

Xamarin.Forms.3.3.0.726028.zip

If anyone wants to test

I've ran this through what reproduction cases I have and I'm not seeing the exception anymore. It should be available on the nightly feed this week as well if you want to wait for that.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants