Не удается запустить приложение Qt в комплекте UWP

Мое приложение основано на Qt Quick Controls 2. Qt 5.7.1, Windows 10, Visual Studio 2015.

Десктопная 32-битная версия работает нормально.

Но когда я переключаюсь на комплект Qt 5.7.1 для универсальной платформы Windows 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

В нем указано здесь, что некоторая зависимость отсутствует. Я проверил это с помощью Dependency Walker, и кажется, что все необходимые библиотеки DLL находятся в папке приложения. Я также попытался скопировать только все файлы из установки комплекта Qt в каталог приложения.

Мое приложение состоит из одного основного исполняемого файла и трех файлов .DLL. Я запустил windeployqt для каждого из них. Пробовал как отладочную, так и релизную версии.


person Alexander Dyagilev    schedule 22.01.2017    source источник


Ответы (2)


У меня такая же проблема в 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

person LairMan    schedule 24.01.2017
comment
Я создал отчет об ошибке здесь: bugreports.qt.io/browse/QTCREATORBUG-17622 - person Alexander Dyagilev; 24.01.2017

У меня была такая же проблема.

Вам необходимо перекомпилировать все статические/динамические библиотеки, которые использует ваше приложение для Windows 10 SDK. Проблема в том, что вам нужно использовать dll WinRT, которые обеспечивают среду песочницы вместо «обычных» библиотек Windows. Приложения Магазина Windows требуют этого.

В моем случае я использовал статическую библиотеку zip (zlibstat.lib) со статической библиотекой Quazip (quazip.lib), скомпилированную в Windows 7 с Visual Studio 2012.

Вместо этого я использовал Qt zip, поскольку Qt предоставляет библиотеку zip внутри QtCore.dll (просто используйте #include вместо #include «zlib.h») и перекомпилировал Quazip как статическую библиотеку для Windows 10 SDK.

person Borzh    schedule 03.05.2017