This exception happens when a parent class is called from my WearOS main activity derived from WearableActivity:
class MainActivity() : WearableActivity(),
CapabilityClient.OnCapabilityChangedListener {
...
override fun onDestroy() {
super.onDestroy() // <--- Here !!!
if (mApp?.receiver != null) {
Util.d(TAG, "UNREG " + mApp?.receiver)
androidx.localbroadcastmanager.content.LocalBroadcastManager.getInstance(this).unregisterReceiver(mApp!!.receiver!!)
mApp!!.receiver = null
}
}
The full stack trace from Google Play is below. The watch model is Samsung Watch 4 running Android 11. I didn't see the crash on other watches.
java.lang.RuntimeException:
at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:5147)
at android.app.ActivityThread.handleDestroyActivity (ActivityThread.java:5176)
at android.app.servertransaction.DestroyActivityItem.execute (DestroyActivityItem.java:44)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2073)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:246)
at android.app.ActivityThread.main (ActivityThread.java:7690)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:593)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:995)
Caused by: java.lang.SecurityException:
at android.os.Parcel.createExceptionOrNull (Parcel.java:2400)
at android.os.Parcel.createException (Parcel.java:2384)
at android.os.Parcel.readException (Parcel.java:2367)
at android.os.Parcel.readException (Parcel.java:2309)
at com.google.android.wearable.ambient.activity.IAmbientActivityService$Stub$Proxy.detach (IAmbientActivityService.java:366)
at com.google.android.wearable.compat.WearableActivityController$AmbientServiceConnection.detach (WearableActivityController.java:886)
at com.google.android.wearable.compat.WearableActivityController.detach (WearableActivityController.java:667)
at com.google.android.wearable.compat.WearableActivityController.update (WearableActivityController.java:268)
at com.google.android.wearable.compat.WearableActivityController.onDestroy (WearableActivityController.java:202)
at c.b.e (WearableActivityDelegate.java:2)
at c.a.onDestroy (WearableActivity.java:1)
at android.app.Activity.performDestroy (Activity.java:8278)
at android.app.Instrumentation.callActivityOnDestroy (Instrumentation.java:1344)
at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:5132)
Caused by: android.os.RemoteException:
at com.android.server.am.ActivityManagerService.enforceCallingPermission (ActivityManagerService.java:6521)
at com.android.server.am.ActivityManagerService$LocalService.enforceCallingPermission (ActivityManagerService.java:19800)
at com.android.server.wm.ActivityTaskManagerService.enforceCallerIsRecentsOrHasPermission (ActivityTaskManagerService.java:3841)
at com.android.server.wm.ActivityTaskManagerService.getFocusedStackInfo (ActivityTaskManagerService.java:2293)
at com.android.server.am.ActivityManagerService.getFocusedStackInfo (ActivityManagerService.java:17678)