Ubuntu – Why I can’t start demo application on ubuntu-touch emulator

ubuntu-emulatorubuntu-touch

I just created a new ubuntu touch emulator (ubuntu 14.10 sdk i386 devel).

Check device image version..
X86 Emulator 
aosp_x86 
generic_x86 
243 
i386 

I have a default QML code :

import QtQuick 2.0
import Ubuntu.Components 1.1

/*!
    \brief MainView with a Label and Button elements.
*/

MainView {
    // objectName for functional testing purposes (autopilot-qt5)
    objectName: "mainView"

    // Note! applicationName needs to match the "name" field of the click manifest
    applicationName: "com.ubuntu.developer.username.newapp"

    /*
     This property enables the application to change orientation
     when the device is rotated. The default is false.
    */
    //automaticOrientation: true

    // Removes the old toolbar and enables new features of the new header.
    useDeprecatedToolbar: false

    width: units.gu(100)
    height: units.gu(75)

    Page {
        title: i18n.tr("Simple")

        Column {
            spacing: units.gu(1)
            anchors {
                margins: units.gu(2)
                fill: parent
            }

            Label {
                id: label
                objectName: "label"

                text: i18n.tr("Hello..")
            }

            Button {
                objectName: "button"
                width: parent.width

                text: i18n.tr("Tap me!")

                onClicked: {
                    label.text = i18n.tr("..world!")
                }
            }
        }
    }
}

When I lunch My application on my emulator I have two warning :

:-1: warning: desktop_Exec (app): found unexpected Exec with architecture 'all': ./qtc_device_debughelper.py

and

:-1: warning: security_policy_groups_safe_app (debug): (REJECT) reserved policy group 'debug': not for production use
The debug policy group is automatically injected and should only be used for development.
To create a package for the store use the publish tab!

Obviously, my application doesn't start on ubuntu-touch …

Thisi is my application output :

Warning: Permanently added '[127.0.0.1]:10000' (RSA) to the list of known hosts.
Sdk-Launcher> Executing:     /tmp/com.ubuntu.developer.username.newapp_0.1_all.click
Sdk-Launcher> Force Install: False
Sdk-Launcher> Skip Uninstall:False
Sdk-Launcher> Launcher PID: 12359
Sdk-Launcher> Installing application .....
Sdk-Launcher> Installing the application failed

And this is my compile output :

16:34:07: Running steps for project newApp...
sending incremental file list
deleting qtc_device_debughelper.py
./
app.apparmor
app.desktop

sent 480 bytes  received 86 bytes  1.13K bytes/sec
total size is 40.86K  speedup is 72.19
16:34:07: The process "/usr/bin/rsync" exited normally.
WARNING:root:Ignoring missing framework "ubuntu-sdk-14.10"
Successfully built package in './com.ubuntu.developer.username.newapp_0.1_all.click'.
16:34:07: The process "/usr/bin/click" exited normally.
16:34:07: The click package has been created in /home/morgan/qt/build-newApp-u1504_GCC_i386_ubuntu_sdk_14_10_utopic-default
= content_hub =
{
  "error": {},
  "info": {},
  "warn": {}
}
= desktop =
{
  "error": {},
  "info": {
    "desktop_Comment_boilerplate (app)": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_Exec_webapp_args (app)": {
      "manual_review": false,
      "text": "SKIPPED (not webapp-container or webbrowser-app)"
    },
    "desktop_Exec_webapp_container (app)": {
      "manual_review": false,
      "text": "SKIPPED (not webapp-container)"
    },
    "desktop_Exec_webbrowser (app)": {
      "manual_review": false,
      "text": "SKIPPED (not webbrowser-app)"
    },
    "desktop_Icon (app)": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_Terminal (app)": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_Type (app)": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_Version (app)": {
      "manual_review": false,
      "text": "OK (not specified)"
    },
    "desktop_X-Ubuntu-Gettext-Domain (app)": {
      "manual_review": false,
      "text": "OK (not specified)"
    },
    "desktop_X-Ubuntu-StageHint (app)": {
      "manual_review": false,
      "text": "OK (not specified)"
    },
    "desktop_X-Ubuntu-Touch (app)": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_blacklisted_keys (app)": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_duplicate_keys (app)": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_files_usable": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_groups (app)": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_required_fields_not_empty (app)": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_required_keys (app)": {
      "manual_review": false,
      "text": "OK"
    },
    "desktop_validates (app)": {
      "manual_review": false,
      "text": "OK"
    }
  },
  "warn": {
    "desktop_Exec (app)": {
      "manual_review": false,
      "text": "found unexpected Exec with architecture 'all': ./qtc_device_debughelper.py"
    }
  }
}
= functional =
{
  "error": {},
  "info": {
    "functional_qml_applicationName_matches_manifest": {
      "manual_review": false,
      "text": "OK"
    },
    "functional_qml_application_uses_QtWebKit": {
      "manual_review": false,
      "text": "OK"
    },
    "functional_qml_application_uses_UbuntuWebView_0.2": {
      "manual_review": false,
      "text": "OK"
    },
    "functional_qml_application_uses_friends": {
      "manual_review": false,
      "text": "OK"
    }
  },
  "warn": {}
}
= lint =
{
  "error": {},
  "info": {
    "lint_DEBIAN_extra_files": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_DEBIAN_has_control": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_DEBIAN_has_manifest": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_DEBIAN_has_md5sums": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_DEBIAN_has_preinst": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_click_files": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_click_local_extensions": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_architecture_match": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_architecture_specified_needed": {
      "manual_review": false,
      "text": "SKIPPED: architecture is 'all'"
    },
    "lint_control_architecture_valid": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_architecture_valid_contents": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_click_version_up_to_date": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_description_match": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_has_Architecture": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_has_Click-Version": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_has_Description": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_has_Installed-Size": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_has_Maintainer": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_has_Package": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_has_Version": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_installed_size": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_maintainer_match": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_package_match": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_structure": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_control_version_match": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_description": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_description_present": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_exclusive_hooks_app": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_external_symlinks": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_framework": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_hardcoded_paths": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_hooks_app_apparmor": {
      "manual_review": false,
      "text": "OK (run check-security for more checks)"
    },
    "lint_hooks_app_apparmor_known": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_hooks_app_desktop_known": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_hooks_app_valid": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_hooks_multiple_apps": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_hooks_redflag_app": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_icon_present": {
      "manual_review": false,
      "text": "Skipped, optional icon not present"
    },
    "lint_maintainer_domain": {
      "manual_review": false,
      "text": "OK (package domain=('com.ubuntu.developer.', 'net.launchpad.'))"
    },
    "lint_maintainer_format": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_maintainer_present": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_manifest_architecture_valid": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_md5sums": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_package_filename_arch_match": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_package_filename_arch_valid": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_package_filename_format": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_package_filename_matches_namespace": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_package_filename_pkgname_match": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_package_filename_version_match": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_pkgname_valid": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_preinst": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_sdk_security_extension_app": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_title": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_title_present": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_vcs_files": {
      "manual_review": false,
      "text": "OK"
    },
    "lint_version_valid": {
      "manual_review": false,
      "text": "OK"
    }
  },
  "warn": {}
}
= online_accounts =
{
  "error": {},
  "info": {},
  "warn": {}
}
= push_helper =
{
  "error": {},
  "info": {},
  "warn": {}
}
= scope =
{
  "error": {},
  "info": {},
  "warn": {}
}
= security =
{
  "error": {
    "security_policy_groups_safe_app (debug)": {
      "manual_review": false,
      "text": "(REJECT) reserved policy group 'debug': not for production use"
    }
  },
  "info": {
    "security_ignored_fields (app.apparmor)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_policy_groups_duplicates_app (app.apparmor)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_policy_groups_exists_app (app.apparmor)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_policy_groups_safe_app (networking)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_policy_groups_valid_app (debug)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_policy_groups_valid_app (networking)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_policy_vendor (app.apparmor)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_policy_version_exists (app.apparmor)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_policy_version_is_highest (1.2, app.apparmor)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_policy_version_matches_framework (app.apparmor)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_redflag_fields (app.apparmor)": {
      "manual_review": false,
      "text": "OK"
    },
    "security_template_valid (app.apparmor)": {
      "manual_review": false,
      "text": "OK (none specified)"
    },
    "security_template_with_policy_version (app.apparmor)": {
      "manual_review": false,
      "text": "OK"
    }
  },
  "warn": {}
}
= url_dispatcher =
{
  "error": {},
  "info": {},
  "warn": {}
}
16:34:08: The process "/usr/bin/click" exited with code 1.
16:34:08: Ignoring return code for this step
16:34:08: Uploading file '/home/morgan/qt/build-newApp-u1504_GCC_i386_ubuntu_sdk_14_10_utopic-default/com.ubuntu.developer.username.newapp_0.1_all.click'...
16:34:08: Uploading file '/usr/share/qtcreator/ubuntu/scripts/qtc_device_applaunch.py'...
16:34:08: All files successfully deployed.
16:34:08: Deploy step finished.
16:34:08: Elapsed time: 00:02.

And this is my manifest.json

{
    "architecture": "all",
    "description": "description of newApp",
    "framework": "ubuntu-sdk-14.10",
    "hooks": {
        "app": {
            "apparmor": "app.apparmor",
            "desktop": "app.desktop"
        }
    },
    "maintainer": "Morgan DURAND <moi@morgan-durand.com>",
    "name": "com.ubuntu.developer.username.newapp",
    "title": "newApp",
    "version": "0.1"
}

EDIT :

I have decided to create a new emulator from scratch.

First step, create a emulator :

enter image description here

Checking installed emulator package.
ii ubuntu-emulator 0.4+15.04.20141104.1-0ubuntu1

Search configured emulator instances.
ubuntui386 ubuntu=20140917,device=20140917,version=243,arch=i386

Detecting device..
Creating new emulator instance.
Creating "ubui386" from devel revision 243
Downloading...

Setting up...

Setting up a default password for phablet to: '0000'

Now, i create the new kit by clicking on "auto-create kit"
enter image description here

This is the result of autocreate :
enter image description here

This is my manifest.json :

{
    "architecture": "all",
    "description": "description of newApp",
    "framework": "ubuntu-sdk-14.10",
    "hooks": {
        "app": {
            "apparmor": "app.apparmor",
            "desktop": "app.desktop"
        }
    },
    "maintainer": "Morgan DURAND <moi@morgan-durand.com>",
    "name": "com.ubuntu.developer.username.newapp",
    "title": "newApp",
    "version": "0.1"
}

I still have the same problem

NB : I create an i386 image because I can't create a armhf image :

Checking installed emulator package.
ii ubuntu-emulator 0.4+15.04.20141104.1-0ubuntu1

Search configured emulator instances.
cat: /home/morgan/.local/share/ubuntu-emulator/ubuntuarmhf/.device: No such file or directory


Detecting device..
Creating new emulator instance.
Creating "ubuntuarmhf" from devel revision 243
Downloading...

Setting up...

Setting up a default password for phablet to: '0000'

chroot: failed to run command ‘/bin/sh’: Exec format error



Search configured emulator instances.
cat: /home/morgan/.local/share/ubuntu-emulator/ubuntuarmhf/.device: No such file or directory

Best Answer

This error occurs when the architecture of the emulator does not match the architecture of the click target used to build the package. (It took me quite a while to figure this out.)

According to the compile output you've included in your post, you are using the i386 click target. I'm guessing you have the armhf emulator built and running, hence the error.

You need to do one of the following:

  • Create an i386 emulator (this is the recommended choice)
  • Create an armhf click target (you can do this by going to Tools->Options... in Qt Creator and clicking "Ubuntu" in the list on the side)

I recommend the first choice since the i386 emulator will run orders of magnitude faster than the armhf one. (The armhf emulator must emulate an ARM CPU.)

Related Question