Skip to content

Mobile and Embedded

The forum for developing everything embedded: Linux, WinCE, Symbian, MeeGo... you name it.
14.3k Topics 63.1k Posts
Qt 6.11 is out! See what's new in the release blog
  • Setting up Android SDK for Qt Creator on Linux

    Solved
    3
    0 Votes
    3 Posts
    300 Views
    R
    Qt Creator 20.0.2 fixed the problem.
  • Can QML make a digital chalkboard feel like real chalk on a ₹6,000 Android tablet?

    Unsolved
    2
    0 Votes
    2 Posts
    77 Views
    Ronel_qtmasterR
    @taniya-mittal yes you can, this is an exemple https://github.com/jordanprog86/QML-Chalkboard.git
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    10 Views
    No one has replied
  • Project images and icons

    Unsolved
    8
    0 Votes
    8 Posts
    597 Views
    SGaistS
    Nice you found a solution. What were you using before Vulcan ?
  • 0 Votes
    11 Posts
    5k Views
    ekkescornerE
    verified wit QtCreator 20.0.2 snapshot https://download.qt.io/snapshots/qtcreator/20.0/20.0.2/664/ - it’s working now :)
  • Android API and SDK version for maximising population of users. Which to choose?

    Unsolved
    6
    0 Votes
    6 Posts
    419 Views
    SGaistS
    @bogong said in Android API and SDK version for maximising population of users. Which to choose?: @SGaist AppStore for Android applications??? It was meant as the Google application store hence shortened to "App Store" which name is Google Play and not the same as Apple's own AppStore.
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    15 Views
    No one has replied
  • Qt6.8.3 Android QComboBox issue

    Unsolved
    6
    0 Votes
    6 Posts
    2k Views
    stasiozS
    @stasioz said in Qt6.8.3 Android QComboBox issue: @SGaist I am using Qt 6.8.2 on debian 13. @SGaist and emulator "system-images;android-28;google_apis_playstore;x86_64". I haven't tried on a real device though. I did use Qt 6.11.1 at one time compiled from source. I tried it out on an emulator level 28 and wasn't able to click on or select on the combo box. I didn't try on real device either. All apk above are Debug build. JDK 21 NDK 27.2.12479018 Gradle 8.10 All good. QML is fun and quicker similar to MVC pattern.
  • Custom Camera on Android

    Unsolved
    3
    0 Votes
    3 Posts
    340 Views
    Ronel_qtmasterR
    @Andy314 solution one is the right answer but you're missing few things. You should not process the camera streams on the main thread, you need to create another thread for gettig the camera frames and sending them to the Ui Moreover, after getting the camera frame and display it, you should free the memory space consumed by it. otherwise it will be slower and take too much ram
  • Why does we have problem with gradle? Do you have?

    Unsolved
    4
    0 Votes
    4 Posts
    428 Views
    Nils SjobergN
    ./gradlew clean build --refresh-dependencies
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    9 Views
    No one has replied
  • 0 Votes
    3 Posts
    291 Views
    B
    @Nils-Sjoberg Thx a lot. Will try it today.
  • 0 Votes
    3 Posts
    323 Views
    T
    @Nils-Sjoberg Thanks for the suggestion! I tested with: OPENSSL_armcap=0 Unfortunately, it doesn't change the behaviour. The application still crashes on the Raspberry Pi 3, so it doesn't appear to be an OpenSSL CPU capability detection issue. However, I have an interesting update that may help narrow down the problem. Originally, my WebEngineProfile was configured like this: property string tmpDir: session.getPlatform() == "windows" ? "C:/Temp/xx" : "/tmp" WebEngineProfile { offTheRecord: false persistentStoragePath: tmpDir + "/xx-webengine-" + content.uuid() cachePath: tmpDir + "/xx-webcache-" + content.uuid() } So every WebEngineView was using a profile stored under /tmp, with a directory name based on content.uuid(). I then changed only the profile/cache location to a persistent directory under the user's home instead of /tmp, for example: persistentStoragePath: "/home/xx/.local/share/xx/NeoPlayer/WebEngine/profile" cachePath: "/home/xx/.local/share/xx/NeoPlayer/WebEngine/cache" (or an equivalent persistent location). Since this change: the application progresses much further during startup, several crashes no longer occur, the remaining crash is now consistently inside QtWebEngineCore, typically in a thread named CacheThread_Blo, with a backtrace ending in malloc() / operator new() inside libQt5WebEngineCore.so. In other words, changing only persistentStoragePath and cachePath significantly changes the failure mode. What puzzles me is that the original code works perfectly on a Raspberry Pi 5, while it crashes on the Raspberry Pi 3. Some additional comparison between the two systems: Both run Debian 13 (Trixie). /tmp is a tmpfs on both systems. Both use the same application source code. Both are built from the same Qt 5.15.17 build system (with architecture-specific binaries). The Raspberry Pi 5 runs AArch64 (64-bit), while the Raspberry Pi 3 runs ARMv7 (32-bit). This makes me wonder whether the issue is not /tmp itself, but rather how QtWebEngine/Chromium initializes and manages a WebEngineProfile on 32-bit ARM. Changing the profile location seems to alter the internal initialization sequence enough that the crash either disappears or occurs much later during startup. Am I overlooking something about how WebEngineProfile is expected to be used? In particular: Is storing a WebEngineProfile under /tmp considered bad practice or unsupported? Is creating profile directories dynamically using content.uuid() likely to expose issues or race conditions inside QtWebEngine? Would you instead recommend creating a single long-lived WebEngineProfile and reusing it across all WebEngineView instances? Has anyone seen similar behaviour where changing only persistentStoragePath or cachePath changes or eliminates crashes in QtWebEngine? If there are other diagnostics that would help identify the root cause, I'd be happy to run them and share the results.
  • Without native code, how to get iOS and Android device id?

    Unsolved
    2
    0 Votes
    2 Posts
    247 Views
    Nils SjobergN
    Write a small native JNI layer for Android, Objective-C++ for iOS to access Android ID / identifierForVendor, because QSysInfo::machineUniqueId() is not implemented on mobile platforms in Qt
  • 0 Votes
    4 Posts
    404 Views
    SGaistS
    Nice, thanks !
  • Using RevenueCat with Qt 6 ios/android applications. How?

    Unsolved
    2
    0 Votes
    2 Posts
    243 Views
    Nils SjobergN
    There is no official Qt module for RevenueCat, so you need to write a bridge layer yourself - Objective-C++ for iOS and JNI for Android - that connects the native SDK to the C++/QML code, or alternatively check if QtPurchasing (the old built-in module) is sufficient for your needs.
  • Programatically iterate over public Files in Android

    Unsolved android file permissions
    6
    0 Votes
    6 Posts
    675 Views
    B
    Will next look into: https://www.qt.io/blog/qt-for-android-storage-updates
  • Qt6.11.1: Qt Multimedia not working on iOS device

    Solved
    6
    0 Votes
    6 Posts
    565 Views
    SGaistS
    While it works, it still means that there might be something broken with ffmpeg which would be good to find what it is.
  • Add Qt 6 mobile application to sharing application list. How?

    Unsolved
    4
    0 Votes
    4 Posts
    780 Views
    Nils SjobergN
    emericg/MobileSharing and similar
  • QTBUG-141579 deadlock protector crashes the app.

    Unsolved
    6
    0 Votes
    6 Posts
    582 Views
    Andy314A
    Open() instead of exit() breaks former simple code logic - all becomes more complicated. A quick YesNo-Question for code branching is not so simple as before. Open waits not for the answer. How can I do it: Open a dialog at top (switch it to modal) and connect via slots the f.e. Ok-Button (resp. a special signal, what is triggered by the OK-Button) to a slot of the calling dialog/methode ? That would be a lot of work for all my dialogs. I there a simpler universal way for it ? In my code I have a loop, that opens multiple dialogs depends on the input until all questions are answerend. Now, I have tried to use singleShot for exec a dialog, what solved some problems. That needs logic changed too, but I must not change my called dialogs.