- Qt 6.9
- Qt Qml
- CMake Source File Properties in Qt6 Qml
- QT_QML_GENERATE_ANDROID_JAVA_CLASS
- Qt 6.9.3 Reference Documentation

# QT_QML_GENERATE_ANDROID_JAVA_CLASS

Marks a QML file for Java code generation.

This property was introduced in Qt 6.8.

When using QML as a Android: View in Android via QtQuickView, you can choose the QML components to make available as generated Java classes usable from Android code. To mark a `.qml` file for code generation, set its `QT_QML_GENERATE_ANDROID_JAVA_CLASS` source property to `TRUE`. The source property must be set before creating the module.

Note: The `.qml` file name must start with an uppercase letter and define a QML component. This property is valid only if QT_ANDROID_GENERATE_JAVA_QTQUICKVIEW_CONTENTS is defined.

The source file property can be set like so:

     set_source_files_properties(MyMainItem.qml
         PROPERTIES QT_QML_GENERATE_ANDROID_JAVA_CLASS TRUE)

You can pass multiple files at once to set_source_files_properties:

     set(plain_qml_files
         MyItem1.qml
         MyItem2.qml
         FancyButton.qml

     )

     set(qml_to_java_files
         MyMainItem.qml
         MyOtherMain.qml
     )

     set_source_files_properties(${qml_to_java_files}
         PROPERTIES QT_QML_GENERATE_ANDROID_JAVA_CLASS TRUE
     )

     qt_add_qml_module(myapp
         URI MyModule
         QML_FILES ${plain_qml_files} ${qml_to_java_files}
     )

See also Naming Custom QML Object Types.