Ошибка при создании приложения Qt на Android

#qt #cmake #qtandroidextras

Вопрос:

во-первых, я должен сказать, что я могу создать новый проект, построить и запустить его на своем устройстве Android, но у меня проблема с одним из моих проектов, говорится в выводе компиляции:

 06:20:09: Running steps for project MusiQ...
06:20:09: Skipping disabled step Copy application data.
06:20:09: Starting: "F:QtToolsCMake_64bincmake.exe" --build . --target MusiQ
jom: parallel job execution disabled for Makefile
[  5%] Automatic MOC and UIC for target MusiQ
[  5%] Built target MusiQ_autogen
[100%] Built target MusiQ
06:20:10: The process "F:QtToolsCMake_64bincmake.exe" exited normally.
06:20:10: Starting: "F:Qt5.15.0androidbinandroiddeployqt.exe" --input F:/project/MusiQ/build-MusiQ-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_15_0_for_Android-Release/android_deployment_settings.json --output F:/project/MusiQ/build-MusiQ-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_15_0_for_Android-Release/android-build --android-platform android-29 --jdk "C:/Program Files/Java/jdk1.8.0_271" --gradle
Cannot find application binary MusiQ.
06:20:10: The process "F:Qt5.15.0androidbinandroiddeployqt.exe" exited with code 2.
Error while building/deploying project MusiQ (kit: Android for armeabi-v7a,arm64-v8a,x86,x86_64 (Clang Qt 5.15.0 for Android))
When executing step "Build Android APK"
06:20:10: Elapsed time: 00:01.
 

Я не знаю, есть ли что-то не так со строкой 2, пропускающей отключенную копию шага…

но после начала androiddeployqt.exe, в строке 10, в журналах говорится: Не удается найти двоичный файл приложения

Я понятия не имею, как это решить, потому что на самом деле у меня есть двоичный файл MusiQ в сгенерированных файлах после компиляции, также, как я уже говорил ранее, я могу запускать и развертывать другие проекты на своем устройстве Android, поэтому я думаю, что с конфигурацией Qt-Android в QtCreator проблем нет,

Есть идеи, как решить эту проблему? Спасибо

Ответ №1:

решено, это была моя вина:

Я должен добавить библиотеку вместо исполняемого файла для устройства Android:

 if (WIN32)
    add_executable(target ${target_SOURCES} ${QRC_FILE} ${target_HEADERS})
elseif(ANDROID)
    add_library(target SHARED
        ${target_SOURCES} ${QRC_FILE} ${target_HEADERS}
    )
endif()