如果是CMake工程,请确保它写入了CMakeCache.txt文件中。如果没有,可以清楚CMake配置,重新CMake;Qt的bin目录中自带的是Release版的qmlplugindump,它只能正确处理我们Release版的插件编译结果,对于Debug版的是会报错的。解决办法有两个:只在Release时生成。其实qmltypes文件是一样的,Debug和Release可以复用;自己去Qt源码中找到qmlplugindump的源码,然后编一个Debug版的。可以使用CMake的add_custom_command命令将qmlplugindump的执行脚本化,这样可以让CMake每次编译时自动帮我们生成(或者更新)qmltypes文件。