Bug 491392 - Text Properties docker is blank on Android in Nightly builds
Summary: Text Properties docker is blank on Android in Nightly builds
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Dockers (other bugs)
Version First Reported In: git master (please specify the git hash!)
Platform: Other Android 14.x
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-08-07 14:37 UTC by Dmitry Kazakov
Modified: 2025-05-09 18:22 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry Kazakov 2024-08-07 14:37:15 UTC
The Text Properties is blank on Android when using nightly builds. It works fine when using local build of Krita apk.

The nightly build has the following debug messages:

08-07 14:20:28.484  6935  6959 W krita   : qrc:/TextProperties.qml:8:1: module "QtQuick.Layouts" is not installed 
08-07 14:20:28.484  6935  6959 W krita   :      import QtQuick.Layouts 1.12 
08-07 14:20:28.484  6935  6959 W krita   :      ^
08-07 14:20:28.484  6935  6959 W krita   : qrc:/TextProperties.qml:7:1: module "QtQuick.Controls" is not installed 
08-07 14:20:28.484  6935  6959 W krita   :      import QtQuick.Controls 2.5 
08-07 14:20:28.484  6935  6959 W krita   :      ^
08-07 14:20:28.484  6935  6959 W krita   : qrc:/TextProperties.qml:8:1: module "QtQuick.Layouts" is not installed 
08-07 14:20:28.484  6935  6959 W krita   :      import QtQuick.Layouts 1.12 
08-07 14:20:28.484  6935  6959 W krita   :      ^
08-07 14:20:28.484  6935  6959 W krita   : qrc:/TextProperties.qml:7:1: module "QtQuick.Controls" is not installed 
08-07 14:20:28.484  6935  6959 W krita   :      import QtQuick.Controls 2.5 
08-07 14:20:28.484  6935  6959 W krita   :      ^

Local build doesn't have them. The possible cause is that the nightly build first builds "debug" build, then cleans it, then builds a "release" build. It might be that the clean stage removes the necessary libraries...
Comment 1 Freya Lupen 2025-05-05 20:00:36 UTC
QML isn't being packaged. The .so files that go in /lib and the .qml and other files that go in /assets/qml are missing.

Running androiddeployqt with --verbose, like
> $SRCDIR/_install/bin/androiddeployqt --input $SRCDIR/_build/krita-deployment.json --output $SRCDIR/_build/krita_build_apk/ --android-platform android-34 --gradle --verbose
shows 
> Running qmlimportscanner with the following command: /krita/_install/bin/qmlimportscanner -rootPath /krita/ -importPath /krita/_install/qml /krita/ /krita/_build/lib
>   -- Adding '/krita/_install/qml/QtQuick.2' as QML dependency
>     -- Skipping because path is in QML root path.
[... long list of QML dependencies being skipped]

qml-root-path is defined in _build/krita-deployment.json, which is generated by ECM, which hardcodes this value to the source folder (https://invent.kde.org/frameworks/extra-cmake-modules/-/blob/v5.101.0/toolchain/deployment-file-qt514.json.in?ref_type=tags).
Modifying this path to "[source]/plugins" (where Krita's own qml files are located) produces an APK with a working Text Properties docker.

So patching ECM to make qml-root-path customizable would be one possible solution, though there may be a better way.
Comment 2 Bug Janitor Service 2025-05-09 13:37:34 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/2398
Comment 3 Dmitry Kazakov 2025-05-09 18:22:22 UTC
Git commit aa95d27486ba45d8bdd49d51ffefa91609d0f1b1 by Dmitry Kazakov.
Committed on 09/05/2025 at 18:21.
Pushed by dkazakov into branch 'master'.

[android] Move the build workdir outside of the source tree

Otherwise androiddeployqt fails to package Qt's QML modules
Fixes T17523

M  +11   -3    build-tools/ci-scripts/android.yml

https://invent.kde.org/graphics/krita/-/commit/aa95d27486ba45d8bdd49d51ffefa91609d0f1b1