Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

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:

    0_1556051806303_Capture.PNG

    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.
    0_1556088595076_d0c7306f-e1d2-49b5-9283-10da4d76b2d6-image.png



  • @KroMignon

    0_1556088739422_Capture_3.PNG

    And I'm using Qt 5.12.3 (Qt Creator 4.9.0)



  • @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.



  • @KroMignon

    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?



  • @KroMignon

    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?


Log in to reply