Unsolved A problem with Android versions in a QML program
-
Hi all,
Using Qt Creator 4.9.0 on Windows 10 x64 and Android stuff below, I created a QML program that works fine with the Desktop kit and also on a tablet running Anroid 4.4.2
JDK: jdk1.8.0_211
NDK: android-ndk-r19c
SDK as below:But the program doesn't work properly on a smartphone running Android ver 7! That is, at some time of the game, it stops! :(
What's the problem please?
Could it be because I've not installed sdk Android 7 API 24?I even changed the ndk from android-ndk-r19c to android-ndk-r18b, but no difference in outcome! :(
-
@tomy Hi Tomy, which Qt for Android version you are using?
Take a look at Getting Started with Qt for Android to check your have set the right prerequisites according to your Qt Libs.
-
@KroMignon Hi,
I'm using the armv7 architecture. And Android build sdk = android-28.
Could these answer your question please?
And what do you mean by "Qt Libraries"?! -
@tomy said in A problem with Android versions in a QML program:
And what do you mean by "Qt Libraries"?!
Which Qt for Android version: Qt 5.7.0, Qt 5.7.1, etc.
-
-
@tomy Do you have more information about application crash? Just "it doesn't work" is not very useful to understand what's going wrong!
Your software versions seems to match with Qt requirements, so it could be a software bug.
-
The program is here. It is a ping pong game and was working fine before. In this new version I add several design changes to it and now when tested on devices running Android 7, when the ball hits one of the rackets (especially the automatic one), that racket stops moving.
-
@tomy said in A problem with Android versions in a QML program:
that racket stops moving.
This sound for me like a QML error which stops engine exception path. Do you have tried to run it for the Qt Creator IDE?
This will allow you to see QML engine log/error messages.
Or just look at Android logs with logcat? -
This sound for me like a QML error which stops engine exception path. Do you have tried to run it for the Qt Creator IDE?
Do you mean the Desktop kit (MinGW 64-bit)? I tested that using the Desktop kit on both Windows 10 x64 and Mac. On both, the program is working properly and without any issue.
Even I installed it on my iPhone, and it's working fine there as well.As I said, on my tablet running Android 4.4.2 too, the program works as expected. But it has issues on devices running Android 7 or 9. (I have not tested the rest, 5, 6, 8, because I don't have those Android devices to hand)
So to narrow down the problem, I suppose it's related to the high level of Android versions from 6 or 7 upwards to 9.
This will allow you to see QML engine log/error messages.
Or just look at Android logs with logcat?I Built the project in the Debug style using the Arm7 kit until it created the APK file, and here is the whole output of the Compile Output window:
00:34:32: Running steps for project PingPong... 00:34:32: Starting: "D:\Qt\Qt5.12.3\5.12.3\android_armv7\bin\qmake.exe" D:\Projects\QML\PingPong\PingPong\PingPong.pro -spec android-clang "CONFIG+=debug" "CONFIG+=qml_debug" Info: creating stash file D:\Projects\QML\PingPong\build-PingPong-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Debug\.qmake.stash 00:34:34: The process "D:\Qt\Qt5.12.3\5.12.3\android_armv7\bin\qmake.exe" exited normally. 00:34:34: Starting: "D:\Qt_Stuff\android-ndk-r19c\prebuilt\windows-x86_64\bin\make.exe" -f D:/Projects/QML/PingPong/build-PingPong-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Debug/Makefile qmake_all make: Nothing to be done for `qmake_all'. 00:34:34: The process "D:\Qt_Stuff\android-ndk-r19c\prebuilt\windows-x86_64\bin\make.exe" exited normally. 00:34:34: Starting: "D:\Qt_Stuff\android-ndk-r19c\prebuilt\windows-x86_64\bin\make.exe" -j4 D:\Qt_Stuff\android-ndk-r19c/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -c -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain D:\Qt_Stuff\android-ndk-r19c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=D:\Qt_Stuff\android-ndk-r19c/sysroot -isystem D:\Qt_Stuff\android-ndk-r19c/sysroot/usr/include/arm-linux-androideabi -isystem D:\Qt_Stuff\android-ndk-r19c/sources/cxx-stl/llvm-libc++/include -isystem D:\Qt_Stuff\android-ndk-r19c/sources/android/support/include -isystem D:\Qt_Stuff\android-ndk-r19c/sources/cxx-stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -g -g -marm -O0 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I..\PingPong -I. -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include\QtQuick -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include\QtGui -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include\QtQml -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include\QtNetwork -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include\QtCore -I. -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\mkspecs\android-clang -o main.obj ..\PingPong\main.cpp D:\Qt\Qt5.12.3\5.12.3\android_armv7\bin\rcc.exe -name qml ..\PingPong\qml.qrc -o qrc_qml.cpp D:\Qt_Stuff\android-ndk-r19c/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -c -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain D:\Qt_Stuff\android-ndk-r19c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=D:\Qt_Stuff\android-ndk-r19c/sysroot -isystem D:\Qt_Stuff\android-ndk-r19c/sysroot/usr/include/arm-linux-androideabi -isystem D:\Qt_Stuff\android-ndk-r19c/sources/cxx-stl/llvm-libc++/include -isystem D:\Qt_Stuff\android-ndk-r19c/sources/android/support/include -isystem D:\Qt_Stuff\android-ndk-r19c/sources/cxx-stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -g -g -marm -O0 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I..\PingPong -I. -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include\QtQuick -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include\QtGui -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include\QtQml -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include\QtNetwork -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\include\QtCore -I. -I..\..\..\..\Qt\Qt5.12.3\5.12.3\android_armv7\mkspecs\android-clang -o qrc_qml.obj qrc_qml.cpp D:\Qt_Stuff\android-ndk-r19c/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain D:\Qt_Stuff\android-ndk-r19c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -Wl,--exclude-libs,libunwind.a --sysroot=D:\Qt_Stuff\android-ndk-r19c/platforms/android-16/arch-arm/ -Wl,-soname,libPingPong.so -Wl,-rpath=D:/Qt/Qt5.12.3/5.12.3/android_armv7/lib -Wl,--no-undefined -Wl,-z,noexecstack -shared -o libPingPong.so main.obj qrc_qml.obj -LD:/Qt/Qt5.12.3/5.12.3/android_armv7/lib -lQt5Quick -LD:\Qt\Qt5.12.3\5.12.3\android_armv7/lib -Lc:\Utils\Android\android-ndk-r18b/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -lGLESv2 -LD:\Qt_Stuff\android-ndk-r19c/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a D:\Qt_Stuff\android-ndk-r19c/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++.so.16 -llog -lz -lm -ldl -lc 00:34:49: The process "D:\Qt_Stuff\android-ndk-r19c\prebuilt\windows-x86_64\bin\make.exe" exited normally. 00:34:49: Starting: "D:\Qt_Stuff\android-ndk-r19c\prebuilt\windows-x86_64\bin\make.exe" "INSTALL_ROOT=D:\Projects\QML\PingPong\build-PingPong-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Debug\android-build" install D:\Qt\Qt5.12.3\5.12.3\android_armv7\bin\qmake.exe -install qinstall -exe libPingPong.so D:\Projects\QML\PingPong\build-PingPong-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Debug\android-build\libs\armeabi-v7a\libPingPong.so 00:34:50: The process "D:\Qt_Stuff\android-ndk-r19c\prebuilt\windows-x86_64\bin\make.exe" exited normally. 00:34:50: Starting: "D:\Qt\Qt5.12.3\5.12.3\android_armv7\bin\androiddeployqt.exe" --input D:/Projects/QML/PingPong/build-PingPong-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Debug/android-libPingPong.so-deployment-settings.json --output D:/Projects/QML/PingPong/build-PingPong-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Debug/android-build --android-platform android-28 --jdk "C:/Program Files/Java/jdk1.8.0_211" --gradle Generating Android Package Input file: D:/Projects/QML/PingPong/build-PingPong-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Debug/android-libPingPong.so-deployment-settings.json Output directory: D:/Projects/QML/PingPong/build-PingPong-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Debug/android-build/ Application binary: D:/Projects/QML/PingPong/build-PingPong-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Debug/libPingPong.so Android build platform: android-28 Install to device: No -- Skipping D:/Qt/Qt5.12.3/5.12.3/android_armv7/plugins/iconengines/libqsvgicon.so. It has unmet dependencies: lib/libQt5Svg.so. -- Skipping D:/Qt/Qt5.12.3/5.12.3/android_armv7/plugins/imageformats/libqsvg.so. It has unmet dependencies: lib/libQt5Svg.so. :checkDebugClasspath :preBuild UP-TO-DATE :preDebugBuild :compileDebugAidl :compileDebugRenderscript :checkDebugManifest :generateDebugBuildConfig :prepareLintJar :mainApkListPersistenceDebug :generateDebugResValues :generateDebugResources :mergeDebugResources :createDebugCompatibleScreenManifests :processDebugManifest :splitsDiscoveryTaskDebug :processDebugResources :generateDebugSources :javaPreCompileDebug Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. :compileDebugJavaWithJavac :compileDebugNdk NO-SOURCE :compileDebugSources :mergeDebugShaders :compileDebugShaders :generateDebugAssets :mergeDebugAssets :transformClassesWithDexBuilderForDebug :transformDexArchiveWithExternalLibsDexMergerForDebug :transformDexArchiveWithDexMergerForDebug :mergeDebugJniLibFolders :transformNativeLibsWithMergeJniLibsForDebug :checkDebugLibraries :processDebugJavaRes NO-SOURCE :transformResourcesWithMergeJavaResForDebug :validateSigningDebug :packageDebug :assembleDebug BUILD SUCCESSFUL in 1m 8s 28 actionable tasks: 28 executed Android package built successfully in 85.063 ms. -- File: D:/Projects/QML/PingPong/build-PingPong-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Debug/android-build//build/outputs/apk/debug/android-build-debug.apk Warning: QML import could not be resolved in any of the import paths: QtQuick.Extras.Private.CppUtils Warning: QML import could not be resolved in any of the import paths: QtQuick.Extras.Private.CppUtils Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.impl Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Fusion.impl Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Imagine.impl Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Material.impl Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Universal.impl 00:36:15: The process "D:\Qt\Qt5.12.3\5.12.3\android_armv7\bin\androiddeployqt.exe" exited normally. 00:36:15: Elapsed time: 01:42.
Other windows have no error/warning messages.
Isn't the problem belonging to my SDK? I have posted its list in my first post here. Shouldn't I add/remove any item from it?