You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt6 Android平台QML Image无法加载图片问题求助

Qt6 Android平台图片加载失败问题排查与解决

我在Qt6中卡了一个简单但麻烦的问题好久了:用Android Qt Clang x86_64套件(cmake)新建Qt Quick项目,添加图片时出现异常。把图片放到项目文件夹里,用代码Image{ source = "profilna.png" },构建后应用输出警告:libappuntitled3_x86_64.so: qrc:/untitled3/Main.qml:10:5: QML Image: Cannot open: qrc:/untitled3/profilna.png。桌面MinGW套件能正常运行,Android上却不行。之后我添加了resource.qrc(前缀设为"/img"),把img文件夹里的图片导入进去,问题依旧;加了set(CMAKE_AUTORCC ON)也没用。

相关代码

main.qml

import QtQuick
import QtQuick.Window

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    Image{
        x: 62
        y: 39
        width: 153
        height: 345
        source:"qrc:/img/img/profilna.png"
    }
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.16)

project(untitled3 VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_AUTORCC ON)

find_package(Qt6 6.4 REQUIRED COMPONENTS Quick)

qt_standard_project_setup()

qt_add_executable(appuntitled3
    main.cpp
)

qt_add_qml_module(appuntitled3
    URI untitled3
    VERSION 1.0
    QML_FILES Main.qml
)

set_target_properties(appuntitled3 PROPERTIES
    MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

target_link_libraries(appuntitled3
    PRIVATE Qt6::Quick
)

install(TARGETS appuntitled3
    BUNDLE DESTINATION .
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

resource.qrc

<RCC>
    <qresource prefix="/img">
        <file>img/profilna.png</file>
    </qresource>
</RCC>

问题原因与解决办法

  1. 资源文件未关联到构建目标:你的CMakeLists.txt没把resource.qrc添加到可执行文件或QML模块中,Android平台不会自动识别未关联的资源文件,而桌面平台可能因本地文件路径侥幸读取成功。

    • 修复方式:把resource.qrc添加到qt_add_executable的源文件列表:
      qt_add_executable(appuntitled3
          main.cpp
          resource.qrc
      )
      

    或者添加到QML模块的RESOURCES字段:

    qt_add_qml_module(appuntitled3
        URI untitled3
        VERSION 1.0
        QML_FILES Main.qml
        RESOURCES resource.qrc
    )
    
  2. 图片资源路径错误:resource.qrc中前缀是/img,文件路径是img/profilna.png,最终资源路径应为qrc:/img/profilna.png,你当前写的qrc:/img/img/profilna.png多了一层img/。

    • 修复方式:将Image的source改为"qrc:/img/profilna.png"。
  3. Android资源打包验证:可以解压构建生成的APK文件,检查assets或res目录下是否存在目标图片;也可在Qt Creator的Projects视图中,确认Android构建的Deploy步骤包含了资源文件。

内容的提问来源于stack exchange,提问作者Jovan Drazic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:57:19