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

Receiver not registered PowerSaveModeBroadcastReceiver #6903

@ao1010

Description

@ao1010

Description

I am getting a rare crash in Xamarin.Forms.Platform.Android.FormsAppCompatActivity.OnPause bacuause the Power Save Mode Broadcast Receiver that is being removed is not registered.

Add defensive code when unregistering the power receiver just to make sure that the receiver is actually registered.

Steps to Reproduce

  1. Pause the app. (Very hard to reproduce as it happens rarely)

Expected Behavior

App pauses.

Actual Behavior

App crashes

Basic Information

  • Version with issue: XF 3.6.0.344457
  • Last known good version: None
  • IDE: Visual Studio 2017
  • Platform Target Frameworks:
    • Android: 5.1.1
  • Affected Devices: Samsung Active TAB 1

Stack trace

java.lang.IllegalArgumentException: Receiver not registered: md51558244f76c53b6aeda52c8a337f2c37.PowerSaveModeBroadcastReceiver@2c1a873a
android.app.LoadedApk.forgetReceiverDispatcher()LoadedApk.java:863
android.app.ContextImpl.unregisterReceiver()ContextImpl.java:2101
android.content.ContextWrapper.unregisterReceiver()ContextWrapper.java:529
md50adca6ceff4e9e85f78601686514349c.MainActivity.n_onPause(Native Method)
md50adca6ceff4e9e85f78601686514349c.MainActivity.onPause()MainActivity.java:54
android.app.Activity.performPause()Activity.java:6764
android.app.Instrumentation.callActivityOnPause()Instrumentation.java:1338
android.app.ActivityThread.performPauseActivity()ActivityThread.java:4393
android.app.ActivityThread.performPauseActivity()ActivityThread.java:4366
android.app.ActivityThread.handlePauseActivity()ActivityThread.java:4341
android.app.ActivityThread.access$1200()ActivityThread.java:218
android.app.ActivityThread$H.handleMessage()ActivityThread.java:1729
android.os.Handler.dispatchMessage()Handler.java:102
android.os.Looper.loop()Looper.java:145
android.app.ActivityThread.main()ActivityThread.java:6914
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke()Method.java:372
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()ZygoteInit.java:1404
com.android.internal.os.ZygoteInit.main()ZygoteInit.java:1199
Xamarin caused by: Java.Lang.IllegalArgumentException: Receiver not registered: md51558244f76c53b6aeda52c8a337f2c37.PowerSaveModeBroadcastReceiver@2c1a873a
Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualVoidMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args)<9cb01525c8ce48268eb7a54e1b653d67>:0
Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualVoidMethod(string encodedMember, IJavaPeerable self, JniArgumentValue* parameters)<9cb01525c8ce48268eb7a54e1b653d67>:0
Android.Content.ContextWrapper.UnregisterReceiver(BroadcastReceiver receiver)<83e36ed05052486983583851de96589e>:0
Xamarin.Forms.Platform.Android.FormsAppCompatActivity.OnPause():0
CMS.Mobile.Droid.MainActivity.OnPause()<300088f2ef204a8b9c0414e96bfdc0d6>:0
Android.App.Activity.n_OnPause(IntPtr jnienv, IntPtr native__this)<83e36ed05052486983583851de96589e>:0
at (wrapper dynamic-method) System.Object.19(intptr,intptr)
--- End of managed Java.Lang.IllegalArgumentException stack trace ---
java.lang.IllegalArgumentException: Receiver not registered: md51558244f76c53b6aeda52c8a337f2c37.PowerSaveModeBroadcastReceiver@2c1a873a
android.app.LoadedApk.forgetReceiverDispatcher()LoadedApk.java:863
android.app.ContextImpl.unregisterReceiver()ContextImpl.java:2101
android.content.ContextWrapper.unregisterReceiver()ContextWrapper.java:529
md50adca6ceff4e9e85f78601686514349c.MainActivity.n_onPause(Native Method)
md50adca6ceff4e9e85f78601686514349c.MainActivity.onPause()MainActivity.java:54
android.app.Activity.performPause()Activity.java:6764
android.app.Instrumentation.callActivityOnPause()Instrumentation.java:1338
android.app.ActivityThread.performPauseActivity()ActivityThread.java:4393
android.app.ActivityThread.performPauseActivity()ActivityThread.java:4366
android.app.ActivityThread.handlePauseActivity()ActivityThread.java:4341
android.app.ActivityThread.access$1200()ActivityThread.java:218
android.app.ActivityThread$H.handleMessage()ActivityThread.java:1729
android.os.Handler.dispatchMessage()Handler.java:102
android.os.Looper.loop()Looper.java:145
android.app.ActivityThread.main()ActivityThread.java:6914
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke()Method.java:372
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()ZygoteInit.java:1404
com.android.internal.os.ZygoteInit.main()ZygoteInit.java:1199

Metadata

Metadata

Assignees

Labels

e/2 🕑2i/highCompletely doesn't work, crashes, or is unusably slow, has no obvious workaround; occurs less oftenin-progressThis issue has an associated pull request that may resolve it!p/Androids/unverifiedNew report that has yet to be verifiedt/bug 🐛up-for-grabsWe welcome community contributions to any issue, but these might be a good place to start!

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions