Skip to content

[BUG] Random app crashes  #1614

@oridotaoyebode

Description

@oridotaoyebode

Description

App randomly crashes with the below stacktrace

SKTouchHandler.SetEnabled (Android.Views.View view, System.Boolean enableTouchEvents)
System.ObjectDisposedException: Cannot access a disposed object. Object name: 'SkiaSharp.Views.Android.SKCanvasView'.

Code

public class TestView: SKCanvasView
{
    public TestView()
    {
        ....

        PaintSurface += HandlePaintSurface;
        EnableTouchEvents = true;
        Touch += HandleTouch;
        
    }
}

Expected Behavior

The underling code should properly be able to set EnabledTouchEvent (or whatever platform-specific equivalent exists) without crashing.

Actual Behavior

Crash randomly by navigating through the app

Basic Information

  • Version with issue: 2.80.2

  • Last known good version: N/A

  • IDE: Visual Studio

  • Platform Target Frameworks:

    • Android: 10.0
    • iOS: 11
  • Target Devices:

    • Samsung Galaxy A1
    • Hauwei P20 Pro
Detailed IDE/OS information (click to expand)

SKTouchHandler.SetEnabled (Android.Views.View view, System.Boolean enableTouchEvents)
System.ObjectDisposedException: Cannot access a disposed object. Object name: 'SkiaSharp.Views.Android.SKCanvasView'.

JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self)
JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters)
View.SetOnTouchListener (Android.Views.View+IOnTouchListener l)
View+<>c__DisplayClass2803_0.<remove_Touch>b__0 (Android.Views.View+IOnTouchListener __v)
EventHelper.RemoveEventHandler[TInterface,TImplementor] (System.WeakReference& implementor, System.Func2[T,TResult] empty, System.Action1[T] unsetListener, System.Action1[T] remove) View.remove_Touch (System.EventHandler1[TEventArgs] value)
SKTouchHandler.SetEnabled (Android.Views.View view, System.Boolean enableTouchEvents)
SKTouchHandler.Detach (Android.Views.View view)
SKCanvasViewRendererBase`2[TFormsView,TNativeView].Dispose (System.Boolean disposing)
Object.Finalize ()


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions