Внедряване на проект qt3d за android под windows

Опитвам се да разположа тестова програма на android с qt5 и qt3d под windows. Създаването на qt3d беше успешно, но библиотеките и източниците трябваше да бъдат копирани ръчно в моята папка Qt5. Изглежда, че qt3d работи добре, модулът е разпознат като такъв.

Сега исках да създам един от тези примерни проекти в папката qt3d. За да бъда по-точен, опитах се да създам примера за чайник qt3d.

C:\Qt\android-ndk-r9b/toolchains/arm-linux-androideabi-4.8/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -Wa,--noexecstack -std=gnu++0x -O2 -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -fno-exceptions -Wall -Wno-psabi -W -D_REENTRANT -fPIE -DQT_NO_PRINTDIALOG -DQT_NO_XKBCOMMON -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_3D_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\mkspecs\android-g++ -I..\teapot -I..\..\..\include -I..\..\..\include\Qt3D -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtOpenGL -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtWidgets -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtGui -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtCore -I.moc\release_shared -IC:\Qt\android-ndk-r9b\sources\cxx-stl\gnu-libstdc++\4.8\include -IC:\Qt\android-ndk-r9b\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include -IC:\Qt\android-ndk-r9b\platforms\android-9\arch-arm\usr\include -I. -o .obj\release_shared\teapotview.obj ..\teapot\teapotview.cpp
C:\Qt\android-ndk-r9b/toolchains/arm-linux-androideabi-4.8/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -Wa,--noexecstack -std=gnu++0x -O2 -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -fno-exceptions -Wall -Wno-psabi -W -D_REENTRANT -fPIE -DQT_NO_PRINTDIALOG -DQT_NO_XKBCOMMON -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_3D_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\mkspecs\android-g++ -I..\teapot -I..\..\..\include -I..\..\..\include\Qt3D -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtOpenGL -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtWidgets -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtGui -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtCore -I.moc\release_shared -IC:\Qt\android-ndk-r9b\sources\cxx-stl\gnu-libstdc++\4.8\include -IC:\Qt\android-ndk-r9b\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include -IC:\Qt\android-ndk-r9b\platforms\android-9\arch-arm\usr\include -I. -o .obj\release_shared\main.obj ..\teapot\main.cpp
C:\Qt\Qt5.1.1\5.1.1\android_armv7\bin\moc.exe -DQT_NO_PRINTDIALOG -DQT_NO_XKBCOMMON -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_3D_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\mkspecs\android-g++ -I..\teapot -I..\..\..\include -I..\..\..\include\Qt3D -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtOpenGL -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtWidgets -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtGui -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtCore -I.moc\release_shared -IC:\Qt\android-ndk-r9b\sources\cxx-stl\gnu-libstdc++\4.8\include -IC:\Qt\android-ndk-r9b\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include -IC:\Qt\android-ndk-r9b\platforms\android-9\arch-arm\usr\include -I. -I/usr/include -I/usr/local/include ..\teapot\teapotview.h -o .moc\release_shared\moc_teapotview.cpp
C:\Qt\android-ndk-r9b/toolchains/arm-linux-androideabi-4.8/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -Wa,--noexecstack -std=gnu++0x -O2 -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -fno-exceptions -Wall -Wno-psabi -W -D_REENTRANT -fPIE -DQT_NO_PRINTDIALOG -DQT_NO_XKBCOMMON -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_3D_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\mkspecs\android-g++ -I..\teapot -I..\..\..\include -I..\..\..\include\Qt3D -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtOpenGL -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtWidgets -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtGui -IC:\Qt\Qt5.1.1\5.1.1\android_armv7\include\QtCore -I.moc\release_shared -IC:\Qt\android-ndk-r9b\sources\cxx-stl\gnu-libstdc++\4.8\include -IC:\Qt\android-ndk-r9b\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include -IC:\Qt\android-ndk-r9b\platforms\android-9\arch-arm\usr\include -I. -o .obj\release_shared\moc_teapotview.obj .moc\release_shared\moc_teapotview.cpp
C:\Qt\android-ndk-r9b/toolchains/arm-linux-androideabi-4.8/prebuilt/windows/bin/arm-linux-androideabi-g++ --sysroot=C:\Qt\android-ndk-r9b/platforms/android-9/arch-arm/ -Wl,-soname,libteapot.so -Wl,-rpath-link=C:/Qt/Qt5.1.1/5.1.1/android_armv7/lib -Wl,--no-undefined -Wl,-z,noexecstack -shared -o \bin\libteapot.so .obj\release_shared\teapotview.obj .obj\release_shared\main.obj .obj\release_shared\moc_teapotview.obj   -LC:\Qt\android-ndk-r9b/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a -LC:\Qt\android-ndk-r9b/platforms/android-9/arch-arm//usr/lib -LC:/Qt/qt-3d/lib -lQt53D -LC:\Qt\android-ndk-r8e/sources/cxx-stl/gnu-libstdc++/4.7/libs/armeabi-v7a -LC:\Qt\android-ndk-r8e/platforms/android-14/arch-arm//usr/lib -lgnustl_shared -lsupc++ -llog -lz -lm -ldl -lc -lgcc -LC:\Qt\Qt5.1.1\5.1.1\android_armv7\lib -lQt5OpenGL -lQt5Widgets -lQt5Gui -lQt5Core -lGLESv2 
16:19:28: The process "C:\Qt\Qt5.1.1\Tools\mingw48_32\bin\mingw32-make.exe" exited normally.
16:19:28: Elapsed time: 00:11.

Сега исках да разположа този проект за android (натискане на този бутон със стрелка). Внедряването в Android не беше успешно. Не е генериран APK файл, той просто се проваля.

mingw32-make: Nothing to be done for 'first'.
16:22:02: The process "C:\Qt\Qt5.1.1\Tools\mingw48_32\bin\mingw32-make.exe" exited normally.
16:22:02: Starting: "C:\Qt\Qt5.1.1\Tools\mingw48_32\bin\mingw32-make.exe" INSTALL_ROOT="C:\Qt\qt-3d\examples\qt3d\teapot\android" install
Die Syntax fr den Dateinamen, Verzeichnisnamen oder die Datentr„gerbezeichnung ist falsch.
makefile:1908: recipe for target 'install_target' failed
mingw32-make: *** [install_target] Error 1
16:22:04: The process "C:\Qt\Qt5.1.1\Tools\mingw48_32\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project teapot (kit: Android for arm (GCC 4.8, Qt 5.1.1)-Qt 5.1.1 for Android armv7)
When executing step 'Copy application data'
16:22:04: Elapsed time: 00:05

И така, къде е проблемът? Много благодаря предварително...


qt5
person user2956438    schedule 12.11.2013    source източник


Отговори (1)


Проблемът е в Qt3D примерния про файл, където включва pri. Начинът, по който получавам примери за изграждане на Android и внедряване, е като създам нов проект Quick2 и просто копирам qml и други ресурси в новата папка qml на проекта. След това, ако използвате активи, всичко се копира в APK вместо вас. Ако искате по-бързо зареждане, добавете ресурсен файл към проекта и добавете всички съществуващи файлове и в main.cpp променете към използване на префикса qrc:, за да вземете qml файла с входна точка. Късмет!

person Dave    schedule 06.12.2013