qmlscene WARNING **: Unable to register app: Invalid application ID

编写 QML 的时候运行出现的警告:

$ /usr/bin/qmlscene hello.qml

unity::action::ActionManager::ActionManager(QObject*):
	Could not determine application identifier. HUD will not work properly.
	Provide your application identifier in $APP_ID environment variable.

** (qmlscene:12464): WARNING **: Unable to register app: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: Invalid application ID

这个警告是因为没有指定应用 id(application ID),在命令的前面指明 APP_ID 这个环境变量即可:

$ APP_ID=hello /usr/bin/qmlscene hello.qml

如果是使用 ubuntu sdk 这个 IDE 编写的时候 Ctrl + R 运行报错。
请找到 Ubuntu SDK (其实就是定制版的 Qt Creator) 左侧的 【Projects】接着请找到Desktop下,Build旁边的 【Run】,然后在出来的界面中找到下方的 Rune Environment 下点击【Details】点添加,跟加 windows 的环境变量一样,加上一个 APP_ID 然后 value 比如项目名 hello 。
然后再来 Ctrl+R 就不会出现这个错误了。

另外 .desktop 文件中的 Exec 参数修改是不影响 Ubuntu sdk 运行的,那个文件中指明的是打包之后告诉你的 ubuntu 桌面如何运行的一个配置。

ubuntu sdk 安装 (ubuntu touch 开发环境)

按照官方的说法,最好使用 ubuntu 14.04 来进行开发。安装的过程很简单:

sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
sudo apt-get update
sudo apt-get install ubuntu-sdk

其过程就是添加一个 SDK Release PPA 的地址,然后更新 apt-get,接着使用 apt-get 来直接安装 ubuntu sdk。
不过博主直接安装有报错:

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/trusty-updates/universe/binary-amd64/Packages  Hash Sum mismatch
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/trusty-updates/main/binary-i386/Packages  Hash Sum mismatch
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/trusty-updates/universe/binary-i386/Packages  Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.

原因就如英文原文所说的 old ones used,有些库太老了,需要更新。这个时候你需要

sudo apt-get dist-upgrade

之后再 sudo apt-get install ubuntu-sdk 就可以了。等安装好了之后就可以在菜单里面搜索 ubuntu sdk 找到,或者直接在 terminal 上运行:

ubuntu-sdk

命令也可以运行该 IDE。

小Tip:Ctrl + N 新建项目,Ctrl + R 查看运行效果

源引官方文档:Installing the ubuntu sdk