с помощью ubuntu-sdk для создания приложения с проблемами

3

Я обновил свой Ubuntu 14.04 до 14.10, чтобы использовать последнюю версию ubuntu-sdk. Но когда я создал простой проект пользовательского интерфейса, есть только красная волновая линия под «import Ubuntu.Components.1.1». Поэтому я перевел мышь на красную волну. Окно всплыло, как показано буквально:

Errors while reading typeinfo files:
   Failed to parse 'usr/lib/x86_64-linux-gnu/qt5/Ubuntu/Component/plugins.qmltypes'.
   Error:/usr/lib/x86_64-linux-gnu/qt3/qml/Ubuntu/Components/plugins.qmltypes:632:19:Expected string literal to contain 'Package/Name major.minor' or 'Name major.minor'.
/usr/lib/x86_64-linux-gnu/qt3/qml/Ubuntu/Components/plugins.qmltypes:633:36:Expected array literal with only number literal members.

Что означают эти строки? Как я могу решить эти проблемы?

    
задан Wayne 29.11.2014 в 09:49
источник

3 ответа

2

У меня была такая же проблема сегодня, однако я только что нашел решение (и то, что ошибка была конкретно).

Проблема заключается в том, что требуемые файлы плагинов qml не указаны в указанных в настоящее время каталогах include.

Если вы создадите новое приложение и выберите App with Simple UI , в корневом каталоге проекта приложения будет файл с именем [projectName].qmlproject .

На моем, включение было около нижней части страницы, например:

/* List of plugin directories passed to QML runtime */
    importPaths: [ "." ,"/usr/bin","/usr/lib/x86_64-linux-gnu/qt5/qml"]

Я побежал find / -name *qml* и нашел то, что выглядело подходящим каталогом, со многими элементами, которые имели хорошие шансы быть qml плагинами, поэтому я скопировал этот каталог, перешел в [projectName].qmlproject к заявлению, вышедшему выше и добавил каталог. Окончательный importPaths выглядит следующим образом:

/* List of plugin directories passed to QML runtime */
    importPaths: [ "." ,"/usr/bin","/usr/lib/x86_64-linux-gnu/qt5/qml","/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf/usr/lib/arm-linux-gnueabihf/qt5/qml/Ubuntu/Components/" ]

После этого я мог открыть файл qml в дизайнере в этом проекте, а также в другом, у которого нет файла qmlproject , поэтому я предполагаю, что память каталога сохранена.

Однако проблема заключается в том, что он ищет неправильный каталог для файлов плагинов qml, поэтому найдите те и способ их включения (описанный выше способ решения для меня).

    
ответ дан JVE999 11.12.2014 в 11:58
источник
2

У меня была такая же проблема, чтобы исправить это. Я редактировал файл plugins.qmltypes. Следуйте по пути в сообщении об ошибке, вам нужны права суперпользователя. В сообщении об ошибке говорится, что некоторые строки не могут быть проанализированы. Глядя на файл, строки содержатся в каком-то объекте JSON, в моем случае, в конце файла. Я удалил весь объект, и он сработал.

Component {
        prototype: "QObject"
        name: "UbuntuColors"
        exports: ["UbuntuColors -1.-1"]
        exportMetaObjectRevisions: [-1]
        isComposite: true
        isCreatable: false
        isSingleton: true
        Property { name: "orange"; type: "QColor"; isReadonly: true }
        Property { name: "lightAubergine"; type: "QColor"; isReadonly: true }
        Property { name: "midAubergine"; type: "QColor"; isReadonly: true }
        Property { name: "darkAubergine"; type: "QColor"; isReadonly: true }
        Property { name: "warmGrey"; type: "QColor"; isReadonly: true }
        Property { name: "coolGrey"; type: "QColor"; isReadonly: true }
        Property { name: "orangeGradient"; type: "QQuickGradient"; isPointer: true }
        Property { name: "greyGradient"; type: "QQuickGradient"; isPointer: true }
        Property { name: "lightGrey"; type: "QColor"; isReadonly: true }
        Property { name: "darkGrey"; type: "QColor"; isReadonly: true }
        Property { name: "red"; type: "QColor"; isReadonly: true }
        Property { name: "green"; type: "QColor"; isReadonly: true }
        Property { name: "blue"; type: "QColor"; isReadonly: true }
        Property { name: "purple"; type: "QColor"; isReadonly: true }
    }
    
ответ дан sillo01 22.02.2015 в 02:33
1

Моим решением было изменить файл plugins.qmltypes :

  

Эта ошибка вызвана установкой exportMetaObjectRevisions в [0,0] на Component , которые имеют только один export . Удаление запятой, а второй 0 исправляет это.

     

Это изменение должно быть применено к строкам 1058, 1067 и 1085 следующего файла:

     

/usr/lib/x86_64-linux-gnu/qt5/qml/Ubuntu/Components/plugins.qmltypes      

Как только я внес эти изменения, я смог войти на страницу дизайна для нового приложения QML с qmake, не встречая блокирующего всплывающего блока.

     

Я запускаю новую установку Ubuntu 15.10 с архитектурой amd64; другим архитектурам, возможно, потребуется заменить x86_64-linux-gnu части пути к файлу с чем-то более подходящим для системы.

Дополнительная информация № 2:

Ссылка

    
ответ дан delijati 07.12.2015 в 11:01