Hello!
I am trying to connect to a LE device periodically via WorkManager. On certain devices I am getting the following crash. Is there any situation when we are leaking some receiver instance?
Do we have to close some resources after job done to unregister the receiver which no.nordicsemi.android.ble.BleManager may be using?
Thanks!
Fatal Exception: java.lang.IllegalStateException: Too many receivers, total of 1000, registered for pid: 19004, callerPackage: a.b.c.
at android.os.Parcel.createExceptionOrNull(Parcel.java:2434)
at android.os.Parcel.createException(Parcel.java:2410)
at android.os.Parcel.readException(Parcel.java:2393)
at android.os.Parcel.readException(Parcel.java:2335)
at android.app.IActivityManager$Stub$Proxy.registerReceiverWithFeature(IActivityManager.java:5560)
at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1776)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1730)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1718)
at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:726)
at no.nordicsemi.android.ble.BleManager.<init>(BleManager.java:176)
at no.nordicsemi.android.ble.livedata.ObservableBleManager.<init>(ObservableBleManager.java:24)
at a.b.b.RBleManager.<init>(RBleManager.kt:102)
at a.b.b.RBleManager.<init>(RBleManager.kt:92)
at a.b.c.tina.PeriodicRDataModule.provideBleManager(PeriodicRDataModule.java:45)
at a.b.c.tina.PeriodicRDataModule_ProvideBleManagerFactory.provideBleManager(PeriodicRDataModule_ProvideBleManagerFactory.java:69)
at a.b.c.tina.DaggerPeriodicRDataComponent.getRBleManager(DaggerPeriodicRDataComponent.java:31)
at a.b.c.tina.DaggerPeriodicRDataComponent.injectPeriodicRDataWorker(DaggerPeriodicRDataComponent.java:50)
at a.b.c.tina.DaggerPeriodicRDataComponent.inject(DaggerPeriodicRDataComponent.java:44)
at a.b.c.tina.PeriodicRDataWorker$1.invokeSuspend(PeriodicRDataWorker.kt:47)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7941)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)
Hello!
I am trying to connect to a LE device periodically via WorkManager. On certain devices I am getting the following crash. Is there any situation when we are leaking some receiver instance?
Do we have to close some resources after job done to unregister the receiver which
no.nordicsemi.android.ble.BleManagermay be using?Thanks!