我的应用是基于Qt Quick Controls 2的应用。 Qt 5.7.1,Windows 10,Visual Studio 2015。
桌面32位版本运行正常。
但是当我切换到 Qt 5.7.1 for Universal Windows Platform 32bit 工具包时,它无法运行并出现以下错误:
winrtrunner --device 0 --start --stop --install --wait 0 --profile appx C:/Work/Source/build-MusicPlayer-Qt_5_7_1_for_Universal_Windows_Platform_32bit-Release/bin/player.exe
qt.winrtrunner: Using the Appx profile.
qt.winrtrunner: Failed to activate application: 0x8027025b "The app didn't start."
Error while executing the WinRT Runner Tool: Process crashed
它指出here缺少某些依赖关系。我使用Dependency Walker检查了它,似乎所有必需的DLL都在应用程序的文件夹中。我还尝试将Qt工具包安装中的所有文件复制到app的目录中。
我的应用程序包含一个主要可执行文件和三个.DLL文件。我为他们每个人推出了windeployqt。尝试了调试和发布版本。
答案 0 :(得分:1)
我在Windows 10,Qt 5.8(也是5.7),Windows Runtime 64bit VC2015上遇到了同样的问题。
此主题在Qt网站上公开:https://forum.qt.io/topic/73272/qt-5-7-for-winrt-and-dynamic-libraries,但在我的案例中没有帮助:(。我在这里开了一个新主题:https://forum.qt.io/topic/75424/cannot-start-qt-quick-winrt-application
答案 1 :(得分:0)
我有同样的问题。
您需要重新编译应用程序用于Windows 10 SDK的所有静态/动态库。问题是您需要使用提供沙箱环境而不是“普通”Windows库的WinRT dll。 Windows应用商店应用程序需要。
在我的情况下,我使用了zip静态库(zlibstat.lib)和Quazip静态库(quazip.lib),在Windows 7中使用Visual Studio 2012编译。
相反,我使用Qt zip,因为Qt在QtCore.dll中提供了zip库,(只使用#include而不是#include“zlib.h”)并重新编译Quazip作为Windows 10 SDK的静态库。