microsoft / appcenter-sdk-android

Development repository for the App Center SDK for Android
Other
274 stars 135 forks source link

App set as Home App not automatically launched after mandatory update #1710

Closed BenMswag closed 9 months ago

BenMswag commented 10 months ago

Description

I setup a basic sample app for reproducing the issue. My app is configured as home app by setting
<category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> as intent filter for the MainActivity. After installing a mandatory update the app is not autmatically launched and the user has to press the home button to re open it aigain. The download and installation of the update itself is working as expected.

Repro Steps

Please list the steps used to reproduce your issue.

  1. Configure app as home app
  2. Distribute mandatory update
  3. Dowload and install update

Details

  1. Which SDK version are you using?
    • 5.0.0
  2. Which OS version did you experience the issue on?
    • Android 13
  3. What device version did you see this error on? Were you using an emulator or a physical device?
    • Google Pixel 5 physical device
  4. What third party libraries are you using?
    • none
  5. Please enable verbose logging for your app using AppCenter.setLogLevel(Log.VERBOSE) before your call to AppCenter.start(...) and include the logs here:

2023-09-19 14:54:26.861 1826-2204 ActivityManager pid-1826 I Force stopping de.developer.appcentertestsetup.rclive appid=10164 user=-1: installPackageLI 2023-09-19 14:54:26.862 1826-2204 ActivityManager pid-1826 I Killing 28562:de.developer.appcentertestsetup.rclive/u0a164 (adj 0): stop de.developer.appcentertestsetup.rclive due to installPackageLI 2023-09-19 14:54:26.865 1826-2232 PackageManager pid-1826 I Update package de.developer.appcentertestsetup.rclive code path from /data/app/yjpAlraP4VZ4b6I0U5jzoA==/de.developer.appcentertestsetup.rclive-3HEENzE8WNF-x61NQDev1Q== to /data/app/X1REnLXt9nCYBCy9hpbpuQ==/de.developer.appcentertestsetup.rclive-F8p5VFuPwYPqhvPGwtKxBw==; Retain data and using new 2023-09-19 14:54:26.866 1826-2204 ActivityTaskManager pid-1826 W Force removing ActivityRecord{b627220 u0 de.developer.appcentertestsetup.rclive/de.developer.appcentertestsetup.MainActivity} t110 f}}: app died, no saved state 2023-09-19 14:54:27.011 1826-2204 WindowManager pid-1826 W Failed to deliver inset state change to w=Window{d1f9e83 u0 de.developer.appcentertestsetup.rclive/de.developer.appcentertestsetup.MainActivity} android.os.DeadObjectException at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(BinderProxy.java:584) at android.view.IWindow$Stub$Proxy.insetsControlChanged(IWindow.java:473) at com.android.server.wm.WindowState.notifyInsetsControlChanged(WindowState.java:4011) at com.android.server.wm.InsetsStateController.lambda$notifyPendingInsetsControlChanged$4(InsetsStateController.java:351) at com.android.server.wm.InsetsStateController.$r8$lambda$An2IoiA3BeA5IWc6QwBOjKArM80(Unknown Source:0) at com.android.server.wm.InsetsStateController$$ExternalSyntheticLambda3.run(Unknown Source:2) at com.android.server.wm.WindowAnimator.executeAfterPrepareSurfacesRunnables(WindowAnimator.java:345) at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:832) at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:777) at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:177) at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:126) at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:115) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5463) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5472) at com.android.server.wm.ActivityRecord.onRemovedFromDisplay(ActivityRecord.java:4227) at com.android.server.wm.DisplayContent.removeAppToken(DisplayContent.java:1446) at com.android.server.wm.ActivityRecord.removeFromHistory(ActivityRecord.java:3887) at com.android.server.wm.ActivityRecord.handleAppDied(ActivityRecord.java:4158) at com.android.server.wm.WindowProcessController.handleAppDied(WindowProcessController.java:1288) at com.android.server.wm.ActivityTaskManagerService$LocalService.handleAppDied(ActivityTaskManagerService.java:6114) at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3241) at com.android.server.am.ProcessList.removeProcessLocked(ProcessList.java:2872) at com.android.server.am.ProcessList.killPackageProcessesLSP(ProcessList.java:2817) at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:4518) at com.android.server.am.ActivityManagerService$MainHandler.handleMessage(ActivityManagerService.java:1755) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) at com.android.server.ServiceThread.run(ServiceThread.java:44) 2023-09-19 14:54:27.012 1826-2204 WindowManager pid-1826 W Failed to deliver inset state change to w=Window{27b762d u0 Downloading update} android.os.DeadObjectException at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(BinderProxy.java:584) at android.view.IWindow$Stub$Proxy.insetsControlChanged(IWindow.java:473) at com.android.server.wm.WindowState.notifyInsetsControlChanged(WindowState.java:4011) at com.android.server.wm.InsetsStateController.lambda$notifyPendingInsetsControlChanged$4(InsetsStateController.java:351) at com.android.server.wm.InsetsStateController.$r8$lambda$An2IoiA3BeA5IWc6QwBOjKArM80(Unknown Source:0) at com.android.server.wm.InsetsStateController$$ExternalSyntheticLambda3.run(Unknown Source:2) at com.android.server.wm.WindowAnimator.executeAfterPrepareSurfacesRunnables(WindowAnimator.java:345) at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:832) at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:777) at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:177) at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:126) at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:115) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5463) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5472) at com.android.server.wm.ActivityRecord.onRemovedFromDisplay(ActivityRecord.java:4227) at com.android.server.wm.DisplayContent.removeAppToken(DisplayContent.java:1446) at com.android.server.wm.ActivityRecord.removeFromHistory(ActivityRecord.java:3887) at com.android.server.wm.ActivityRecord.handleAppDied(ActivityRecord.java:4158) at com.android.server.wm.WindowProcessController.handleAppDied(WindowProcessController.java:1288) at com.android.server.wm.ActivityTaskManagerService$LocalService.handleAppDied(ActivityTaskManagerService.java:6114) at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3241) at com.android.server.am.ProcessList.removeProcessLocked(ProcessList.java:2872) at com.android.server.am.ProcessList.killPackageProcessesLSP(ProcessList.java:2817) at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:4518) at com.android.server.am.ActivityManagerService$MainHandler.handleMessage(ActivityManagerService.java:1755) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) at com.android.server.ServiceThread.run(ServiceThread.java:44) 2023-09-19 14:54:27.013 1826-2204 WindowManager pid-1826 W Exception thrown during dispatchAppVisibility Window{27b762d u0 Downloading update} android.os.DeadObjectException at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(BinderProxy.java:584) at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:536) at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:3478) at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1234) at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:392) at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:6825) at com.android.server.wm.ActivityRecord.postApplyAnimation(ActivityRecord.java:5525) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5468) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5472) at com.android.server.wm.ActivityRecord.onRemovedFromDisplay(ActivityRecord.java:4227) at com.android.server.wm.DisplayContent.removeAppToken(DisplayContent.java:1446) at com.android.server.wm.ActivityRecord.removeFromHistory(ActivityRecord.java:3887) at com.android.server.wm.ActivityRecord.handleAppDied(ActivityRecord.java:4158) at com.android.server.wm.WindowProcessController.handleAppDied(WindowProcessController.java:1288) at com.android.server.wm.ActivityTaskManagerService$LocalService.handleAppDied(ActivityTaskManagerService.java:6114) at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3241) at com.android.server.am.ProcessList.removeProcessLocked(ProcessList.java:2872) at com.android.server.am.ProcessList.killPackageProcessesLSP(ProcessList.java:2817) at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:4518) at com.android.server.am.ActivityManagerService$MainHandler.handleMessage(ActivityManagerService.java:1755) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) at com.android.server.ServiceThread.run(ServiceThread.java:44) 2023-09-19 14:54:27.013 1826-2204 Process pid-1826 I Sending signal. PID: 28562 SIG: 9 2023-09-19 14:54:27.013 1826-2204 WindowManager pid-1826 W Exception thrown during dispatchAppVisibility Window{c15dcf6 u0 Downloading update} android.os.DeadObjectException at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(BinderProxy.java:584) at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:536) at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:3478) at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1234) at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:392) at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:6825) at com.android.server.wm.ActivityRecord.postApplyAnimation(ActivityRecord.java:5525) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5468) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5472) at com.android.server.wm.ActivityRecord.onRemovedFromDisplay(ActivityRecord.java:4227) at com.android.server.wm.DisplayContent.removeAppToken(DisplayContent.java:1446) at com.android.server.wm.ActivityRecord.removeFromHistory(ActivityRecord.java:3887) at com.android.server.wm.ActivityRecord.handleAppDied(ActivityRecord.java:4158) at com.android.server.wm.WindowProcessController.handleAppDied(WindowProcessController.java:1288) at com.android.server.wm.ActivityTaskManagerService$LocalService.handleAppDied(ActivityTaskManagerService.java:6114) at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3241) at com.android.server.am.ProcessList.removeProcessLocked(ProcessList.java:2872) at com.android.server.am.ProcessList.killPackageProcessesLSP(ProcessList.java:2817) at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:4518) at com.android.server.am.ActivityManagerService$MainHandler.handleMessage(ActivityManagerService.java:1755) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) at com.android.server.ServiceThread.run(ServiceThread.java:44) 2023-09-19 14:54:27.013 1826-2204 Process pid-1826 I Sending signal. PID: 28562 SIG: 9 2023-09-19 14:54:27.014 1826-2204 WindowManager pid-1826 W Exception thrown during dispatchAppVisibility Window{48b8d59 u0 de.developer.appcentertestsetup.rclive/de.developer.appcentertestsetup.MainActivity} android.os.DeadObjectException at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(BinderProxy.java:584) at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:536) at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:3478) at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1234) at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:392) at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:6825) at com.android.server.wm.ActivityRecord.postApplyAnimation(ActivityRecord.java:5525) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5468) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5472) at com.android.server.wm.ActivityRecord.onRemovedFromDisplay(ActivityRecord.java:4227) at com.android.server.wm.DisplayContent.removeAppToken(DisplayContent.java:1446) at com.android.server.wm.ActivityRecord.removeFromHistory(ActivityRecord.java:3887) at com.android.server.wm.ActivityRecord.handleAppDied(ActivityRecord.java:4158) at com.android.server.wm.WindowProcessController.handleAppDied(WindowProcessController.java:1288) at com.android.server.wm.ActivityTaskManagerService$LocalService.handleAppDied(ActivityTaskManagerService.java:6114) at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3241) at com.android.server.am.ProcessList.removeProcessLocked(ProcessList.java:2872) at com.android.server.am.ProcessList.killPackageProcessesLSP(ProcessList.java:2817) at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:4518) at com.android.server.am.ActivityManagerService$MainHandler.handleMessage(ActivityManagerService.java:1755) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) at com.android.server.ServiceThread.run(ServiceThread.java:44) 2023-09-19 14:54:27.014 1826-2204 Process pid-1826 I Sending signal. PID: 28562 SIG: 9 2023-09-19 14:54:27.014 1826-2204 WindowManager pid-1826 W Exception thrown during dispatchAppVisibility Window{d1f9e83 u0 de.developer.appcentertestsetup.rclive/de.developer.appcentertestsetup.MainActivity} android.os.DeadObjectException at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(BinderProxy.java:584) at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:536) at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:3478) at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1234) at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:392) at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:6825) at com.android.server.wm.ActivityRecord.postApplyAnimation(ActivityRecord.java:5525) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5468) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5472) at com.android.server.wm.ActivityRecord.onRemovedFromDisplay(ActivityRecord.java:4227) at com.android.server.wm.DisplayContent.removeAppToken(DisplayContent.java:1446) at com.android.server.wm.ActivityRecord.removeFromHistory(ActivityRecord.java:3887) at com.android.server.wm.ActivityRecord.handleAppDied(ActivityRecord.java:4158) at com.android.server.wm.WindowProcessController.handleAppDied(WindowProcessController.java:1288) at com.android.server.wm.ActivityTaskManagerService$LocalService.handleAppDied(ActivityTaskManagerService.java:6114) at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3241) at com.android.server.am.ProcessList.removeProcessLocked(ProcessList.java:2872) at com.android.server.am.ProcessList.killPackageProcessesLSP(ProcessList.java:2817) at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:4518) at com.android.server.am.ActivityManagerService$MainHandler.handleMessage(ActivityManagerService.java:1755) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) at com.android.server.ServiceThread.run(ServiceThread.java:44) 2023-09-19 14:54:27.083 1826-2232 ActivityManager pid-1826 I Force stopping de.developer.appcentertestsetup.rclive appid=10164 user=0: pkg removed 2023-09-19 14:54:27.088 1826-2403 InputReader pid-1826 I Reconfiguring input devices, changes=KEYBOARD_LAYOUTS | 2023-09-19 14:54:27.836 1826-2203 ziparchive pid-1826 W Unable to open '/data/app/~~X1REnLXt9nCYBCy9hpbpuQ==/de.developer.appcentertestsetup.rclive-F8p5VFuPwYPqhvPGwtKxBw==/base.dm': No such file or directory 2023-09-19 14:54:28.450 1826-2205 ActivityManager pid-1826 I Start proc 5196:de.developer.appcentertestsetup.rclive/u0a164 for broadcast {de.developer.appcentertestsetup.rclive/com.microsoft.appcenter.distribute.UpdateReceiver}

It seems like my app is crashing after the update. I'm not sure if the issue is related to the DeadObjectException thrown for my app's MainActivity.

MikhailSuendukov commented 9 months ago

Hi @BenMswag and thank you for reaching us out. Now, when updating an application, a notification appears when you click on it and the application will be launched. I'll close this issue, but if you still have any questions, feel free to reopen it.