usando o ubuntu-sdk para criar aplicativos com problemas

3

Eu atualizei meu Ubuntu 14.04 para 14.10 para usar o ubuntu-sdk mais recente. Mas quando eu criei um projeto de interface do usuário simples, há apenas uma linha de onda vermelha sob o "import Ubuntu.Components.1.1". Então eu movi meu mouse para a linha de onda vermelha. Uma janela apareceu assim, literalmente:

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.

O que essas linhas significam? Como posso resolver esses problemas?

    
por Wayne 29.11.2014 / 09:49

3 respostas

2

Eu estava tendo o mesmo problema hoje, no entanto, acabei de descobrir a solução (e qual foi o erro especificamente).

O problema é que os arquivos de plug-in qml necessários não estão nos diretórios de inclusão especificados no momento.

Se você criar um novo aplicativo e selecionar App with Simple UI , haverá um arquivo chamado [projectName].qmlproject no diretório-raiz do projeto de aplicativo.

No meu, o include estava perto da parte inferior da página, assim:

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

Corri find / -name *qml* e encontrei algo que parecia ser um diretório adequado, com muitos itens que tinham uma boa chance de ser qml plugins, então copiei esse diretório, fui para [projectName].qmlproject para a declaração postada acima e adicionou o diretório. A declaração final importPaths se parece com isso:

/* 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/" ]

Depois de fazer isso, eu poderia abrir o arquivo qml no designer nesse projeto, bem como em outro que não tenha um arquivo qmlproject , então presumo que a memória do diretório foi mantida.

O problema é, no entanto, que ele está procurando no diretório errado pelos arquivos do plugin qml, então encontre-os e uma maneira de incluí-los (a maneira especificada acima resolveu o problema para mim).

    
por JVE999 11.12.2014 / 11:58
2

Eu tive o mesmo problema, para corrigi-lo eu editei o arquivo plugins.qmltypes. Siga o caminho na mensagem de erro, você precisa de permissões de superusuário. A mensagem de erro diz que algumas linhas não puderam ser analisadas. Olhando para o arquivo, as linhas estão contidas em algum tipo de objeto JSON, no meu caso, no final do arquivo. Eu removi o objeto inteiro e funcionou.

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 }
    }
    
por sillo01 22.02.2015 / 02:33
1

Minha solução foi alterar o arquivo plugins.qmltypes :

  

Esse bug é causado pela configuração de exportMetaObjectRevisions to [0,0] on Component blocks que possuem apenas um export definido. Excluir a vírgula e o segundo 0 corrige isso.

     

Essa alteração precisa ser aplicada nas linhas 1058, 1067 e 1085 do seguinte arquivo:

     

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

     

Depois que fiz essas alterações, consegui entrar na página de design de um novo aplicativo QML com o qmake sem encontrar um bloqueio de bloco de bloqueio.

     

Estou executando uma nova instalação do Ubuntu 15.10 com uma arquitetura amd64; outras arquiteturas podem precisar substituir a parte x86_64-linux-gnu do caminho do arquivo por algo mais apropriado ao sistema.

Mais informações # 2:

link

    
por delijati 07.12.2015 / 11:01