Sharpnado.Shadows
Sharpnado.Shadows copied to clipboard
Strict mode - ShadowView LeakedClosableViolation
Platform (please complete the following information):
- OS: Android
- Device: Physical device (LG G8s)
- Sdk vervion: Android 12.0 (S) - API 32
- Xamarin.Forms: 5.0.0.2401
Describe the bug When using shadows and having StrictMode enabled:
[StrictMode] StrictMode policy violation: android.os.strictmode.LeakedClosableViolation: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
[StrictMode] at android.os.StrictMode$AndroidCloseGuardReporter.report(StrictMode.java:1924)
[StrictMode] at dalvik.system.CloseGuard.warnIfOpen(CloseGuard.java:303)
[StrictMode] at android.renderscript.BaseObj.finalize(BaseObj.java:145)
[StrictMode] at android.renderscript.Allocation.finalize(Allocation.java:432)
[StrictMode] at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:291)
[StrictMode] at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:278)
[StrictMode] at java.lang.Daemons$Daemon.run(Daemons.java:139)
[StrictMode] at java.lang.Thread.run(Thread.java:923)
[StrictMode] Caused by: java.lang.Throwable: Explicit termination method 'destroy' not called
[StrictMode] at dalvik.system.CloseGuard.openWithCallSite(CloseGuard.java:259)
[StrictMode] at dalvik.system.CloseGuard.open(CloseGuard.java:230)
[StrictMode] at android.renderscript.Allocation.<init>(Allocation.java:421)
[StrictMode] at android.renderscript.Allocation.<init>(Allocation.java:425)
[StrictMode] at android.renderscript.Allocation.createFromBitmap(Allocation.java:2833)
[StrictMode] at crc64994682affb61faca.ShadowView.n_onSizeChanged(Native Method)
[StrictMode] at crc64994682affb61faca.ShadowView.onSizeChanged(ShadowView.java:58)
[StrictMode] at android.view.View.sizeChange(View.java:23079)
[StrictMode] at android.view.View.setFrame(View.java:23031)
[StrictMode] at android.view.View.layout(View.java:22888)
[StrictMode] at crc64994682affb61faca.AndroidShadowsRenderer.n_onLayout(Native Method)
[StrictMode] at crc64994682affb61faca.AndroidShadowsRenderer.onLayout(AndroidShadowsRenderer.java:48)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
[StrictMode] at crc643f46942d9dd1fff9.Platform_DefaultRenderer.n_onLayout(Native Method)
[StrictMode] at crc643f46942d9dd1fff9.Platform_DefaultRenderer.onLayout(Platform_DefaultRenderer.java:75)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
[StrictMode] at crc643f46942d9dd1fff9.PageRenderer.n_onLayout(Native Method)
[StrictMode] at crc643f46942d9dd1fff9.PageRenderer.onLayout(PageRenderer.java:75)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
[StrictMode] at crc64720bb2db43a66fe9.NavigationPageRenderer.n_onLayout(Native Method)
[StrictMode] at crc64720bb2db43a66fe9.NavigationPageRenderer.onLayout(NavigationPageRenderer.java:68)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
[StrictMode] at crc643f46942d9dd1fff9.PlatformRenderer.n_onLayout(Native Method)
[StrictMode] at crc643f46942d9dd1fff9.PlatformRenderer.onLayout(PlatformRenderer.java:67)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
[StrictMode] at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
[StrictMode] at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
[StrictMode] at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
[StrictMode] at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
[StrictMode] at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
[StrictMode] at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
[StrictMode] at com.android.internal.policy.DecorView.onLayout(DecorView.java:892)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3664)
[StrictMode] at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3105)
[StrictMode] at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2035)
[StrictMode] at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8585)
[StrictMode] at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1056)
[StrictMode] at android.view.Choreographer.doCallbacks(Choreographer.java:878)
[StrictMode] at android.view.Choreographer.doFrame(Choreographer.java:811)
[StrictMode] at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1041)
[StrictMode] at android.os.Handler.handleCallback(Handler.java:938)
[StrictMode] at android.os.Handler.dispatchMessage(Handler.java:99)
[StrictMode] at android.os.Looper.loop(Looper.java:223)
[StrictMode] at android.app.ActivityThread.main(ActivityThread.java:7888)
[StrictMode] at java.lang.reflect.Method.invoke(Native Method)
[StrictMode] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
[StrictMode] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:981)
[StrictMode] StrictMode policy violation: android.os.strictmode.LeakedClosableViolation: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
[StrictMode] at android.os.StrictMode$AndroidCloseGuardReporter.report(StrictMode.java:1924)
[StrictMode] at dalvik.system.CloseGuard.warnIfOpen(CloseGuard.java:303)
[StrictMode] at android.renderscript.BaseObj.finalize(BaseObj.java:145)
[StrictMode] at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:291)
[StrictMode] at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:278)
[StrictMode] at java.lang.Daemons$Daemon.run(Daemons.java:139)
[StrictMode] at java.lang.Thread.run(Thread.java:923)
[StrictMode] Caused by: java.lang.Throwable: Explicit termination method 'destroy' not called
[StrictMode] at dalvik.system.CloseGuard.openWithCallSite(CloseGuard.java:259)
[StrictMode] at dalvik.system.CloseGuard.open(CloseGuard.java:230)
[StrictMode] at android.renderscript.Script.<init>(Script.java:344)
[StrictMode] at android.renderscript.ScriptIntrinsic.<init>(ScriptIntrinsic.java:29)
[StrictMode] at android.renderscript.ScriptIntrinsicBlur.<init>(ScriptIntrinsicBlur.java:30)
[StrictMode] at android.renderscript.ScriptIntrinsicBlur.create(ScriptIntrinsicBlur.java:50)
[StrictMode] at crc64994682affb61faca.ShadowView.n_onSizeChanged(Native Method)
[StrictMode] at crc64994682affb61faca.ShadowView.onSizeChanged(ShadowView.java:58)
[StrictMode] at android.view.View.sizeChange(View.java:23079)
[StrictMode] at android.view.View.setFrame(View.java:23031)
[StrictMode] at android.view.View.layout(View.java:22888)
[StrictMode] at crc64994682affb61faca.AndroidShadowsRenderer.n_onLayout(Native Method)
[StrictMode] at crc64994682affb61faca.AndroidShadowsRenderer.onLayout(AndroidShadowsRenderer.java:48)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
[StrictMode] at crc643f46942d9dd1fff9.Platform_DefaultRenderer.n_onLayout(Native Method)
[StrictMode] at crc643f46942d9dd1fff9.Platform_DefaultRenderer.onLayout(Platform_DefaultRenderer.java:75)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
[StrictMode] at crc643f46942d9dd1fff9.PageRenderer.n_onLayout(Native Method)
[StrictMode] at crc643f46942d9dd1fff9.PageRenderer.onLayout(PageRenderer.java:75)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
[StrictMode] at crc64720bb2db43a66fe9.NavigationPageRenderer.n_onLayout(Native Method)
[StrictMode] at crc64720bb2db43a66fe9.NavigationPageRenderer.onLayout(NavigationPageRenderer.java:68)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
[StrictMode] at crc643f46942d9dd1fff9.PlatformRenderer.n_onLayout(Native Method)
[StrictMode] at crc643f46942d9dd1fff9.PlatformRenderer.onLayout(PlatformRenderer.java:67)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
[StrictMode] at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
[StrictMode] at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
[StrictMode] at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
[StrictMode] at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
[StrictMode] at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
[StrictMode] at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
[StrictMode] at com.android.internal.policy.DecorView.onLayout(DecorView.java:892)
[StrictMode] at android.view.View.layout(View.java:22891)
[StrictMode] at android.view.ViewGroup.layout(ViewGroup.java:6476)
[StrictMode] at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3664)
[StrictMode] at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3105)
[StrictMode] at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2035)
[StrictMode] at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8585)
[StrictMode] at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1056)
[StrictMode] at android.view.Choreographer.doCallbacks(Choreographer.java:878)
[StrictMode] at android.view.Choreographer.doFrame(Choreographer.java:811)
[StrictMode] at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1041)
[StrictMode] at android.os.Handler.handleCallback(Handler.java:938)
[StrictMode] at android.os.Handler.dispatchMessage(Handler.java:99)
[StrictMode] at android.os.Looper.loop(Looper.java:223)
[StrictMode] at android.app.ActivityThread.main(ActivityThread.java:7888)
[StrictMode] at java.lang.reflect.Method.invoke(Native Method)
[StrictMode] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
[StrictMode] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:981)
To Reproduce Steps to reproduce the behavior:
- Enable Strict mode (in
OnCreate(...)
)
var vmPolicy = new StrictMode.VmPolicy.Builder();
StrictMode.SetVmPolicy(vmPolicy.DetectAll().PenaltyLog().Build());
- Use the Shadow
<shades:Shadows>
<shades:Shadows.Shades>
<shades:ImmutableShades>
<shades:Shade/>
</shades:ImmutableShades>
</shades:Shadows.Shades>
<Label Text="Hello World"/>
</shades:Shadows>
Screenshots (if applicable) It renders fine, but the debugger slows down considerably when using multiple shadows (since multiple exceptions are being printed) When hot-reload triggers, the exceptions are not being printed (presumably due to the cache?)