Search code examples
c++uwpxbox-one

Xbox One UWP : "activation request failed"


I am trying to deploy an UWP app to a retail Xbox One set up to developer mode. While the app runs fine on PC (x64) and passes the packaging tests, it will fail to launch on the Xbox, with the message :

Unable to activate Windows Store app …. The xxx.exe process started, but the activation request failed with error ‘The app didn’t start’.

Same message as in this issue, so I guess I'm linking to a library that isn't supported by the Xbox, but can't find a way of knowing which one. Is there a way to activate/access some kind of log that will tell me at which step of the launch it failed ? For the record the libraries I'm using are common open-source ones (boost, OpenCV) or MS ones (Cabinet, Angle). I tried with samples and more simple projects and those run fine.

config description : PC : Windows 10.15063, Visual Studio 2017 Xbox : XDKS.1 June 2017

Update1 - I had missed a message in the VS console, apparently the application didn't start because of a missing DLL. Still need to know which one. Since the application runs locally on PC, I suppose it's a system DLL that is on my PC and not on Xbox.

Update 2 - I tried to track all Dlls loaded on startup, by activating gflag

"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\gflags.exe" -i MyApp.exe +sls

The console outputs between Xbox and PC are similar up to a certain point

Xbox

'MyApp.exe' (Win32) : Chargé 'C:\Windows\System32\xmllite.dll'. 
Le thread 0xf84 s'est arrêté avec le code -1073741515 (0xc0000135).

PC

'MyApp.exe' (Win32) : Chargé 'C:\Windows\System32\xmllite.dll'.
'MyApp.exe' (Win32) : Chargé 'C:\Windows\System32\dxgi.dll'. 
'MyApp.exe' (Win32) : Chargé 'C:\Windows\System32\cryptsp.dll'.
'MyApp.exe' (Win32) : Chargé 'C:\Windows\System32\imm32.dll'. 
'MyApp.exe' (Win32) : Chargé 'C:\Windows\System32\kernel.appcore.dll'. 
Le thread 0x6534 s'est arrêté avec le code 0 (0x0).
'MyApp.exe' (Win32) : Chargé 'C:\Windows\System32\Windows.UI.Xaml.dll'. 
(etc. many other Dlls being loaded...)

I suppose the missing dll is one of those, assuming the loading order is the same between both platforms (?).


Solution

  • Well I could not identify the missing/conflicting dll, but I "solved" the issue by changing all my components to static libraries instead of dynamic ones. Not exactly happy with such a quick and dirty solution, but it works, so that will do for now.