У меня есть проект SubDirs
с Qt Quick Application
и несколькими проектами библиотеки c ++, которые статически связаны с приложением Qt, но у меня проблема, описанная ниже.
Версия Qt: Qt 5.14.2
Qt Kit для android не показывает никаких проблем.
У меня нет проблем с windows, и проект будет работать на windows без error
Я могу запустить простое приложение Qt Quick (Scroll, Stack и другое, которое есть в шаблоне) на моем android устройстве, но когда я добавлю библиотеки c ++ и добавлю ссылку на приложение, эта ошибка произойдет.
Ошибка
:-1: error: [install_target] Error 1
Вывод компиляции
12:18:32: The process "D:\SDK\ndk-bundle\prebuilt\windows-x86_64\bin\make.exe" exited normally.
12:18:32: Starting: "D:\SDK\ndk-bundle\prebuilt\windows-x86_64\bin\make.exe" "INSTALL_ROOT=D:\build-MySubdirProName-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Debug\android-build" install
cd JooyaAndroid\ && ( if not exist Makefile C:\Qt\5.14.2\android\bin\qmake.exe -o Makefile D:\QtProjects\JooyaAndroid\JooyaAndroid.pro -spec android-clang "CONFIG+=debug" "CONFIG+=qml_debug" "ANDROID_ABIS=armeabi-v7a" ) && D:/SDK/ndk-bundle/prebuilt/windows-x86_64/bin/make -f Makefile install
make[1]: Entering directory 'D:/build-MySubdirProName-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Debug/JooyaAndroid'
The filename, directory name, or volume label syntax is incorrect.
make[1]: *** [Makefile:1068: install_target] Error 1
make[1]: Leaving directory 'D:/build-MySubdirProName-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Debug/JooyaAndroid'
make: *** [Makefile:74: sub-JooyaAndroid-install_subtargets] Error 2
12:18:34: The process "D:\SDK\ndk-bundle\prebuilt\windows-x86_64\bin\make.exe" exited with code 2.
Error while building/deploying project MySubdirProName(kit: Android for armeabi-v7a,arm64-v8a,x86,x86_64 (Clang Qt 5.14.2 for Android))
When executing step "Copy application data"
12:18:34: Elapsed time: 00:33.
Я думаю, что ошибка связана с Makefile
file.Может ли кто-нибудь сказать, как я могу решить эту проблему?
Edit
Я вставил некоторую строку Makefile для получения дополнительной информации об ошибке:
1065 ####### Install
1066
1067 install_target: all FORCE
1068 @if not exist C:$(INSTALL_ROOT:@msyshack@%=%)\Qt\5.14.2\android\plugins\generic mkdir C:$(INSTALL_ROOT:@msyshack@%=%)\Qt\5.14.2\android\plugins\generic & if not exist C:$(INSTALL_ROOT:@msyshack@%=%)\Qt\5.14.2\android\plugins\generic exit 1
1069 $(QINSTALL) $(TARGET) C:$(INSTALL_ROOT:@msyshack@%=%)\Qt\5.14.2\android\plugins\generic\$(TARGET)
1070 $(RANLIB) C:$(INSTALL_ROOT:@msyshack@%=%)\Qt\5.14.2\android\plugins\generic\$(TARGET)
1071
1072 uninstall_target: FORCE
1073 -$(DEL_FILE) C:$(INSTALL_ROOT:@msyshack@%=%)\Qt\5.14.2\android\plugins\generic\$(TARGET)
1074 -$(DEL_DIR) C:$(INSTALL_ROOT:@msyshack@%=%)\Qt\5.14.2\android\plugins\generic
И дополнительная информация о строке 1068 заключается в том, что в C:\Qt\5.14.2\android\plugins\
есть несколько папок, но папка generic
не существует .
Редактировать 2
После нескольких дней попыток я добился небольшого успеха. Я могу построить проект subdirs
, в котором есть один C++ Library
и один Qt Quick Application
для Android следующим образом:
1-In C ++ Library pro
файл Сначала у меня была конфигурация ниже И я создаю проект, но у меня была ошибка выше:
QT -= gui
TEMPLATE = lib
CONFIG += staticlib
CONFIG += c++11
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
summer.cpp
HEADERS += \
summer.h
# Default rules for deployment.
unix {
target.path = $$[QT_INSTALL_PLUGINS]/generic
}
!isEmpty(target.path): INSTALLS += target
2 - Затем я изменил файл pro
, как показано ниже:
CONFIG += dll
3- Я нажал кнопку сборки, и проект успешно построен, и файл Apk находится в выходной папке
Но я не знаю, что происходит. Учитывая вышесказанное, я хочу знать, как решить мою проблему.
Когда я меняю Config += dll
без проекта сборки на Config += staticlib
, появляется ошибка ниже, и проект не будет построен без сначала staticlib
, а затем dll
config!
:-1: error: No rule to make target 'D:\QtProjects\MyQtProjects\build-FirstSubdirProject-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_QtForAndroid_32ca93-Debug\FirstQtQuickApp\..\MyFirstLibrary\libMyFirstLibrary.a', needed by 'libFirstQtQuickApp_armeabi-v7a.so'. Stop.