由于找不到 qmldir,Android 的扩展插件编译失败

Posted

技术标签:

【中文标题】由于找不到 qmldir,Android 的扩展插件编译失败【英文标题】:Extension Plugin compilation for Android fails due qmldir not found 【发布时间】:2014-06-30 19:49:44 【问题描述】:

我有 Qt Creator 向导创建的 QML 扩展插件。当我尝试为 android 编译它时,编译失败并显示消息:

mingw32-make[1]:进入目录'F:/work/app-project/build-app-Android_for_armeabi_GCC_4_8_Qt_5_3_1-Debug/extention' mingw32-make[1]: *** 没有规则来制作“libextention.so”所需的目标“F:\work\app-project\build-app-Android_for_armeabi_GCC_4_8_Qt_5_3_1-Debug\extention\qmldir”。停下来。

扩展.pro 文件有什么问题?主机操作系统 - Windows 7,Qt - 5.3.1

TEMPLATE = lib
TARGET = extention
QT += qml quick declarative
CONFIG += qt plugin

TARGET = $$qtLibraryTarget($$TARGET)
uri = com.example.extention

# Input
SOURCES += \
    Plugin.cpp \
    extention.cpp

HEADERS += \
    Plugin.h \
    extention.h


OTHER_FILES = qmldir

!equals(_PRO_FILE_PWD_, $$OUT_PWD) 
    copy_qmldir.target = $$OUT_PWD/qmldir
    copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir
    copy_qmldir.commands = $(COPY_FILE) \"$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)\"
    QMAKE_EXTRA_TARGETS += copy_qmldir
    PRE_TARGETDEPS += $$copy_qmldir.target


qmldir.files = qmldir
unix 
    installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /)
    qmldir.path = $$installPath
    target.path = $$installPath
    INSTALLS += target qmldir

【问题讨论】:

嗨。我有完全相同的问题,但似乎没有人回答这个问题。如果您有一个解决方案,您可以在此处发布解决方案吗? 有一种解决方案可以将二进制文件构建到源目录中,而不是不同的目录。抱歉,我忘记了确切的术语。 【参考方案1】:

使用QRC 而不是将 .qml 文件复制到您的构建目录。 Qt 将为您处理所有与系统相关的问题。

【讨论】:

以上是关于由于找不到 qmldir,Android 的扩展插件编译失败的主要内容,如果未能解决你的问题,请参考以下文章

u盘在Linux下怎么挂载,插上去找不到。

应用扩展找不到图片

FFImageLoading 在 Android 中引发异常并出现错误:System.TypeLoadException:由于找不到方法,无法加载方法覆盖列表:

由于找不到MSVCR120.dll和MSVCP120.dll,无法继续执行代码

网络连接错误码

笔记本电脑插上U盘怎么不显示,也找不到。