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

使用Qt开发Android应用:模拟器运行报Invalid json output错误求助

解决Qt Android开发中"Invalid json output from qmlimportscanner"报错的方案

我之前也碰到过一模一样的问题!当时折腾了好一阵才解决,给你几个亲测有效的排查方向:

  • 检查QML导入语句的语法与有效性
    qmlimportscanner的核心工作是扫描项目中的QML模块导入,一旦存在错误的导入(比如拼写错误的模块名、不存在的版本号、自定义模块路径配置错误),就会导致生成的JSON输出无效。你可以手动执行扫描命令获取更详细的报错信息:

    qmlimportscanner -root . -importPath <你的Qt QML安装路径>
    

    比如Qt 6.5的QML路径可能是C:\Qt\6.5.3\android_arm64_v8a\qml(Windows)或者~/Qt/6.5.3/android_arm64_v8a/qml(Linux/macOS),执行后就能看到具体是哪个导入出了问题。

  • 彻底清理构建缓存
    旧的缓存文件经常会引发各种奇怪的兼容性问题,尤其是切换过Android构建配置后。你可以:

    • 删除项目根目录下的build-xxx文件夹
    • 在Qt Creator中点击菜单栏的「构建」->「清理项目」
    • 清理Qt Creator的全局缓存:Windows下删除%LOCALAPPDATA%\Temp\QtCreator,Linux/macOS下删除~/.cache/QtCreator中的项目相关缓存
  • 验证Qt与Android工具链的版本兼容性
    不同Qt版本对Android SDK、NDK的版本有严格要求,比如Qt 6.2+需要NDK 22以上,SDK Build Tools建议使用30.0.3或对应兼容版本。你可以对照Qt官方文档确认当前Qt版本对应的Android环境要求,确保JDK(建议11版本)、SDK、NDK的版本完全匹配。

  • 检查自定义QML模块的配置
    如果项目中使用了自定义QML模块,务必确认:

    • 在Qt Creator的「项目」->「构建环境」中,QML_IMPORT_PATH已正确添加自定义模块的根路径
    • 自定义模块的qmldir文件配置正确,比如模块声明module MyCustomModule与导入语句中的模块名一致
    • 自定义模块的路径中没有中文、特殊符号(即使无空格,特殊字符也可能干扰扫描)
  • 用空项目排查问题范围
    创建一个全新的Qt Quick Empty项目,直接部署到Android模拟器。如果空项目能正常运行,说明问题出在你当前项目的代码或配置中,可以逐步将旧项目的代码、资源迁移到新项目,每次迁移后构建测试,快速定位到引发错误的部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:04:09