Компиляция плагина расширения для Android не удалась из-за того, что qmldir не найден

У меня есть плагин расширения QML, созданный мастером Qt Creator. Когда я пытаюсь скомпилировать его для 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]: *** Нет правила для создания цели 'F: \work\app-project\build-app-Android_for_armeabi_GCC_4_8_Qt_5_3_1-Debug\extention\qmldir', необходимый для 'libextention.so'. Останавливаться.

Что не так с файлом расширения .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
}

person Bernd Jacobi    schedule 30.06.2014    source источник
comment
Привет. У меня точно такая же проблема, но никто не ответил на этот вопрос. Можете ли вы опубликовать решение в качестве ответа здесь, если оно у вас есть?   -  person Félix Cantournet    schedule 30.09.2014
comment
Существует решение для сборки двоичных файлов в исходный каталог, а не в другой каталог. Извините, я забыл точную терминологию.   -  person Bernd Jacobi    schedule 06.10.2014


Ответы (1)


Используйте QRC вместо копирования файлов .qml в каталог сборки. Qt справится со всеми проблемами, зависящими от системы, за вас.

person Simon Warta    schedule 02.07.2014