由于找不到 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 的扩展插件编译失败的主要内容,如果未能解决你的问题,请参考以下文章
FFImageLoading 在 Android 中引发异常并出现错误:System.TypeLoadException:由于找不到方法,无法加载方法覆盖列表: