LottieXamarin icon indicating copy to clipboard operation
LottieXamarin copied to clipboard

Cannot access a disposed object - iOS

Open RemcoDEV opened this issue 3 years ago • 4 comments

Using version: Com.Airbnb.Xamarin.Forms.Lottie 4.0.9

Occurs on: iOS

Code: (wrapped in a control template) image

Stacktrace: An error occurred: 'Cannot access a disposed object. Object name: 'Airbnb.Lottie.LOTAnimationView'.'. Callstack: ' at ObjCRuntime.ThrowHelper.ThrowObjectDisposedException (System.Object o) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/ThrowHelper.cs:34 at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x0001b] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:29 at UIKit.UIView.AddSubview (UIKit.UIView view) [0x00005] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/UIKit/UIView.g.cs:266 at Xamarin.Forms.Platform.iOS.ViewRenderer2[TView,TNativeView].SetNativeControl (TNativeView uiview) [0x00047] in D:\a\1\s\Xamarin.Forms.Platform.iOS\ViewRenderer.cs:240 at Lottie.Forms.Platforms.Ios.AnimationViewRenderer.OnElementChanged (Xamarin.Forms.Platform.iOS.ElementChangedEventArgs1[TElement] e) [0x002ea] in C:\Users\mhvdi\Documents\OpenSource\LottieXamarin\Lottie.Forms\Platforms\Ios\AnimationViewRenderer.cs:118 at Xamarin.Forms.Platform.iOS.VisualElementRenderer1[TElement].SetElement (TElement element) [0x00172] in D:\a\1\s\Xamarin.Forms.Platform.iOS\VisualElementRenderer.cs:296 `

RemcoDEV avatar May 12 '21 14:05 RemcoDEV

Same occured in my Android app caused by the AppThemeBinding :

Xamarin Exception Stack:
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Lottie.Forms.Droid.AnimationViewRenderer'.
  at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00029] in <42748fcc36b74733af2d9940a8f3cc8e>:0
  at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00000] in <42748fcc36b74733af2d9940a8f3cc8e>:0
  at Android.Views.View.SetBackgroundColor (Android.Graphics.Color color) [0x00028] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
  at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].UpdateBackgroundColor () [0x00016] in <04c545f414d24a37af95d995791bb9a9>:0
  at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].OnElementPropertyChanged (System.Object sender, System.ComponentModel.PropertyChangedEventArgs e) [0x00017] in <04c545f414d24a37af95d995791bb9a9>:0
  at Xamarin.Forms.Platform.Android.ViewRenderer`2[TView,TNativeView].OnElementPropertyChanged (System.Object sender, System.ComponentModel.PropertyChangedEventArgs e) [0x00000] in <04c545f414d24a37af95d995791bb9a9>:0
  at Lottie.Forms.Droid.AnimationViewRenderer.OnElementPropertyChanged (System.Object sender, System.ComponentModel.PropertyChangedEventArgs e) [0x001eb] in <2b324cd31ffa4ee7ab1434653ff010ff>:0
  at (wrapper delegate-invoke) <Module>.invoke_void_object_PropertyChangedEventArgs(object,System.ComponentModel.PropertyChangedEventArgs)
  at Xamarin.Forms.BindableObject.OnPropertyChanged (System.String propertyName) [0x00012] in <978ec34c5c9c4c4eb3d73b6da958bcd6>:0
  at Xamarin.Forms.Element.OnPropertyChanged (System.String propertyName) [0x00000] in <978ec34c5c9c4c4eb3d73b6da958bcd6>:0
  at Xamarin.Forms.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) [0x0011b] in <978ec34c5c9c4c4eb3d73b6da958bcd6>:0
  at Xamarin.Forms.BindableObject.SetValueCore (Xamarin.Forms.BindableProperty property, System.Object value, Xamarin.Forms.Internals.SetValueFlags attributes, Xamarin.Forms.BindableObject+SetValuePrivateFlags privateAttributes) [0x00173] in <978ec34c5c9c4c4eb3d73b6da958bcd6>:0
  at Xamarin.Forms.BindableObject.SetValueCore (Xamarin.Forms.BindableProperty property, System.Object value, Xamarin.Forms.Internals.SetValueFlags attributes) [0x00000] in <978ec34c5c9c4c4eb3d73b6da958bcd6>:0
  at Xamarin.Forms.AppThemeBinding.ApplyCore () [0x00028] in <978ec34c5c9c4c4eb3d73b6da958bcd6>:0
  at Xamarin.Forms.AppThemeBinding.<.ctor>b__2_1 () [0x00000] in <978ec34c5c9c4c4eb3d73b6da958bcd6>:0
  at Java.Lang.Thread+RunnableImplementor.Run () [0x00008] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
  at Java.Lang.IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
  at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.29(intptr,intptr)`

Seuleuzeuh avatar Jun 29 '21 14:06 Seuleuzeuh

Is there a work around for this issue? I am facing the same issue with version 4.0.10. But I'm not really sure this issue gets really triggered by this nuget, maybe xamarin or something else.

KonstantinKellermann avatar Jul 07 '21 12:07 KonstantinKellermann

I am having this issue on both iOS and Android on 4.0.10. It is triggered when I navigate to another tab with lotties from a tab with lotties, then back again.

sofiaprice avatar Sep 08 '21 15:09 sofiaprice

I have the same. Lottie animation is an EmptyView template for CarouselView.

[0:] An error occurred: 'Cannot access a disposed object. Object name: 'Airbnb.Lottie.LOTAnimationView'.'. Callstack: ' at ObjCRuntime.ThrowHelper.ThrowObjectDisposedException (System.Object o) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/ThrowHelper.cs:34 at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x0001b] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:29 at UIKit.UIView.AddSubview (UIKit.UIView view) [0x00005] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/UIKit/UIView.g.cs:240

MMieszko avatar Feb 04 '22 19:02 MMieszko