Android Question Pixel 2 crash - Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed

Sviluppatori Liceo Giovio

Member
Licensed User
I'm testing my app using firebase's test lab, and it seems to crash upon opening on pixel 2's with the above error message. It seems to be something related to canvases.
I'm unable to upload the full log as it is too large, but here's a link to it: https://my.mixtape.moe/kqtjmx.txt

Below is what seems to be the relevant section.
B4X:
FATAL EXCEPTION: main
Process: com.infogiovio.app, PID: 11981
java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed
    at android.graphics.Canvas.checkValidClipOp(Canvas.java:779)
    at android.graphics.Canvas.clipRect(Canvas.java:826)
    at anywheresoftware.b4a.objects.drawable.CanvasWrapper.RemoveClip(CanvasWrapper.java:485)
    at anywheresoftware.b4a.objects.B4XCanvas.RemoveClip(B4XCanvas.java:78)
    at com.infogiovio.app.b4xloadingindicator._draw_arc1(b4xloadingindicator.java:121)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:191)
    at anywheresoftware.b4a.keywords.Common.CallSub4(Common.java:1058)
    at anywheresoftware.b4a.keywords.Common.CallSubNew2(Common.java:1013)
    at com.infogiovio.app.b4xloadingindicator$ResumableSub_MainLoop.resume(b4xloadingindicator.java:354)
    at com.infogiovio.app.b4xloadingindicator._vvvv1(b4xloadingindicator.java:304)
    at com.infogiovio.app.b4xloadingindicator._designercreateview(b4xloadingindicator.java:96)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:191)
    at anywheresoftware.b4a.objects.CustomViewWrapper.AfterDesignerScript(CustomViewWrapper.java:67)
    at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayout(LayoutBuilder.java:162)
    at anywheresoftware.b4a.objects.PanelWrapper.LoadLayout(PanelWrapper.java:134)
    at anywheresoftware.b4a.objects.B4XViewWrapper.LoadLayout(B4XViewWrapper.java:279)
    at com.infogiovio.app.main._vvvvvvv3(main.java:5434)
    at com.infogiovio.app.main$ResumableSub_Activity_Create.resume(main.java:591)
    at com.infogiovio.app.main._activity_create(main.java:427)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:191)
    at com.infogiovio.app.main.afterFirstLayout(main.java:104)
    at com.infogiovio.app.main.access$000(main.java:17)
    at com.infogiovio.app.main$WaitForLayout.run(main.java:82)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
 

Star-Dust

Expert
Licensed User
Longtime User
It is related to a new restriction in Android 9. It will only happen if you set targetSdkVersion to 28. For now you should set it to 26.

Canvas.RemoveClip implementation will be updated in the next version of B4A.
Please can you explain what this new restriction consists of?
 
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
It was just curiosity :D
 
Upvote 0
Top