UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Getting crash when adding a WebView to my Page

    Scheduled Pinned Locked Moved App Development
    5 Posts 3 Posters 1.3k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M Offline
      mungorae
      last edited by

      I am trying to add an Ubuntu.Web.WebView to a test app based off the clickable ut-app-cmake-template from the clickable getting started page. This gave me a simple hello world app. Now I am trying to add a WebView.
      This gives me:

      import QtQuick 2.4                                                                                                                                                                                             
      import QtQuick.Layouts 1.1                                                                                                                                                                                     
      import QtQuick.LocalStorage 2.0                                                                                                                                                                                
      import Ubuntu.Components 1.3                                                                                                                                                                                   
      import Ubuntu.Connectivity 1.0                                                                                                                                                                                 
      import Ubspotplugin 1.0                                                                                                                                                                                        
      import Ubuntu.Web 0.2                                                                                                                                                                                          
                                                                                                                                                                                                                     
      MainView {                                                                                                                                                                                                     
          id: root                                                                                                                                                                                                   
          objectName: 'mainView'                                                                                                                                                                                     
          applicationName: 'ubspot.mungorae'                                                                                                                                                                         
          automaticOrientation: true                                                                                                                                                                                 
                                                                                                                                                                                                                     
          width: units.gu(45)                                                                                                                                                                                        
          height: units.gu(75)                                                                                                                                                                                       
                                                                                                                                                                                                                     
          Page {                                                                                                                                                                                                     
              anchors.fill: parent                                                                                                                                                                                   
                                                                                                                                                                                                                     
              header: PageHeader {                                                                                                                                                                                   
                  id: header                                                                                                                                                                                         
                  title: i18n.tr('UBSpot')                                                                                                                                                                           
              }                                                                                                                                                                                                      
                                                                                                                                                                                                                     
              WebView {                                                                                                                                                                                              
                  id: webView                                                                                                                                                                                        
                  url: "http://www.google.com"                                                                                                                                                                       
                                                                                                                                                                                                                     
                  anchors {                                                                                                                                                                                          
                      left: parent.left                                                                                                                                                                              
                      right: parent.right                                                                                                                                                                            
                      bottom: parent.bottom                                                                                                                                                                          
                      top: loginPage.header.bottom                                                                                                                                                                   
                  }                                                                                                                                                                                                  
                                                                                                                                                                                                                     
                  incognito: true                                                                                                                                                                                    
                  preferences.localStorageEnabled: true                                                                                                                                                              
                  preferences.allowFileAccessFromFileUrls: true                                                                                                                                                      
                  preferences.allowUniversalAccessFromFileUrls: true                                                                                                                                                 
                  preferences.appCacheEnabled: true                                                                                                                                                                  
                  preferences.javascriptCanAccessClipboard: true                                                                                                                                                     
              }                                                                                                                                                                                                      
          }                                                                                                                                                                                                          
                                                                                                                                                                                                                     
          Component.onCompleted: Ubspotplugin.speak()                                                                                                                                                                
      }
      

      But its crashing with:

      Loading module: 'libubuntu_application_api_touch_mirclient.so.3.0.0'
      LaunchProcess: failed to execvp:
      /usr/lib/arm-linux-gnueabihf/oxide-qt/chrome-sandbox
      [0919/232725:FATAL:zygote_host_impl_linux.cc(182)] Check failed: ReceiveFixedMessage(fds[0], kZygoteBootMessage, sizeof(kZygoteBootMessage), &boot_pid).
      #0 0x0000ab9e131a <unknown>
      #1 0x0000ab9f043a <unknown>
      #2 0x0000ab2814aa <unknown>
      #3 0x0000ab280a50 <unknown>
      #4 0x0000ab280de0 <unknown>
      #5 0x0000ab091fa6 <unknown>
      #6 0x0000ab095a82 <unknown>
      #7 0x0000ac6aea88 <unknown>
      #8 0x0000aafa6a0c <unknown>
      #9 0x0000ae0b7c86 oxide::qquick::EnsureChromiumStarted()
      #10 0x0000ae0abfbc OxideQQuickWebView::OxideQQuickWebView()
      #11 0x0000ae11eee6 QQmlPrivate::QQmlElement<>::QQmlElement()
      #12 0x0000ae11ef2e QQmlPrivate::createInto<>()
      

      Wondered if anyone knew what I was doing wrong, or what I should add to get around this?

      Thanks for your consideration.

      1 Reply Last reply Reply Quote 0
      • F Offline
        fulvio
        last edited by fulvio

        Hi @mungorae ,
        as test i have created a sample app with clickable - -init and template [2]: cmake - C++/QML App, added a WebView like your one and using "clickable --desktop" i have no issues (i have only removed import Ubuntu.Connectivity 1.0 ).
        But, looking around i have found this: https://stackoverflow.com/questions/52415263/crash-when-using-webview-on-ubuntu-touch-xenial#
        Seems you are the author of that question... As you say in the question you are building/running an App for exenial (16.04) but in your manifest file you have: "policy_version": 1.3 which is a wrong value.
        Look here for info about how to update manifest and apparmor files to build app for xenial: https://forums.ubports.com/topic/1215/updating-apps-to-16-04
        Then try with: "clickable - -xenial" or "clickable --xenial --desktop"
        I'm not sure this solve the issues but i hope can help 🙂

        1 Reply Last reply Reply Quote 2
        • M Offline
          mungorae
          last edited by

          haha yeh I am indeed the author of that question. Hadn't found this forum at that time 🙂

          Thank you for your reply @fulvio.
          So I updated my policy version and changed the framework as per the helpful post you linked to. However I do still seem to be getting the same error. My policy file now looks like:

          {                                                                                                                                                                                                              
              "policy_groups": [                                                                                                                                                                                         
                  "networking",                                                                                                                                                                                          
                  "connectivity",                                                                                                                                                                                        
                  "content_exchange",                                                                                                                                                                                    
                  "content_exchange_source",                                                                                                                                                                             
                  "usermetrics",                                                                                                                                                                                         
                  "webview",                                                                                                                                                                                             
                  "keep-display-on",                                                                                                                                                                                     
                  "audio",                                                                                                                                                                                               
                  "video"                                                                                                                                                                                                
              ],                                                                                                                                                                                                         
              "policy_version": 16.04                                                                                                                                                                                    
          }
          

          I am using clickable ---k 16.04 to run it on a Nexus 5 device.

          From that post I can see mention of a click-review tool, so I installed that and tried to fix any problems. It wanted me to remove debug from policy, so I did that. Now it tells me:

          Warnings
          --------
           - lint:architecture_specified_needed
                  Could not find compiled binaries for architecture 'armhf'
          build/ubspot.mungorae_0.1.0_armhf.click: FAIL
          

          Maybe that has got something to do with my crash.

          If its any help the output of clickable -k 16.04 is

          Using docker container "clickable/ubuntu-sdk:16.04-armhf"
          -- The C compiler identification is GNU 5.4.0
          -- The CXX compiler identification is GNU 5.4.0
          -- Check for working C compiler: /usr/bin/arm-linux-gnueabihf-gcc
          -- Check for working C compiler: /usr/bin/arm-linux-gnueabihf-gcc -- works
          -- Detecting C compiler ABI info
          -- Detecting C compiler ABI info - done
          -- Detecting C compile features
          -- Detecting C compile features - done
          -- Check for working CXX compiler: /usr/bin/arm-linux-gnueabihf-g++
          -- Check for working CXX compiler: /usr/bin/arm-linux-gnueabihf-g++ -- works
          -- Detecting CXX compiler ABI info
          -- Detecting CXX compiler ABI info - done
          -- Detecting CXX compile features
          -- Detecting CXX compile features - done
          -- Found Gettext: /usr/bin/msgmerge (found version "0.19.7") 
          -- Configuring done
          -- Generating done
          -- Build files have been written to: /home/alex/Projects/ubports/ubspot/build
          Scanning dependencies of target ubspot.desktop
          Scanning dependencies of target Ubspotplugin_automoc
          Scanning dependencies of target ubspot.mungorae.pot
          Scanning dependencies of target ubspot_FILES
          [ 28%] Merging translations into ubspot.desktop...
          [ 28%] Automatic moc for target Ubspotplugin
          [ 28%] Built target ubspot_FILES
          [ 42%] Generating translation template
          Merging translations into ubspot.desktop.
          Wrote ubspot.desktop.in.h
          [ 42%] Built target ubspot.desktop
          [ 42%] Built target ubspot.mungorae.pot
          Generating moc_plugin.cpp
          Generating moc_ubspotplugin.cpp
          [ 42%] Built target Ubspotplugin_automoc
          Scanning dependencies of target Ubspotplugin
          [ 85%] Building CXX object plugins/Ubspotplugin/CMakeFiles/Ubspotplugin.dir/ubspotplugin.cpp.o
          [ 85%] Building CXX object plugins/Ubspotplugin/CMakeFiles/Ubspotplugin.dir/Ubspotplugin_automoc.cpp.o
          [ 85%] Building CXX object plugins/Ubspotplugin/CMakeFile   s/Ubspotplugin.dir/plugin.cpp.o
          [100%] Linking CXX shared module Ubspotplugin/libUbspotplugin.so
          [100%] Built target Ubspotplugin
          [ 14%] Merging translations into ubspot.desktop...
          Merging translations into ubspot.desktop.
          [ 14%] Built target ubspot.desktop
          [ 14%] Built target ubspot_FILES
          [ 28%] Generating translation template
          Wrote ubspot.desktop.in.h
          [ 28%] Built target ubspot.mungorae.pot
          [ 42%] Automatic moc for target Ubspotplugin
          [ 42%] Built target Ubspotplugin_automoc
          [100%] Built target Ubspotplugin
          Install the project...
          -- Install configuration: ""
          -- Installing: /home/alex/Projects/ubports/ubspot/build/tmp//manifest.json
          -- Installing: /home/alex/Projects/ubports/ubspot/build/tmp//ubspot.apparmor
          -- Installing: /home/alex/Projects/ubports/ubspot/build/tmp//qml
          -- Installing: /home/alex/Projects/ubports/ubspot/build/tmp//qml/Main.qml
          -- Installing: /home/alex/Projects/ubports/ubspot/build/tmp//assets
          -- Installing: /home/alex/Projects/ubports/ubspot/build/tmp//assets/logo.svg
          -- Installing: /home/alex/Projects/ubports/ubspot/build/tmp//ubspot.desktop
          -- Installing: /home/alex/Projects/ubports/ubspot/build/tmp/lib/arm-linux-gnueabihf/Ubspotplugin/libUbspotplugin.so
          -- Installing: /home/alex/Projects/ubports/ubspot/build/tmp/lib/arm-linux-gnueabihf/Ubspotplugin/qmldir
          Successfully built package in './ubspot.mungorae_0.1.0_armhf.click'.
          [100%] /home/phablet/ubspot.mungorae_0.1.0_armhf.click
          Installing files              [=========================]         
          Finished                      [=========================]         
          Installing files              [=========================]         
          Starting                      [=========================]         
          Finished                      [=========================]         
          Installed       ubspot.mungorae-0.1.0.armhf (installed:click,removable=1,app_name=ubspot)   summary goes here
          

          Interesting that you got it working, though I am deploying to device rather than to desktop.

          F 1 Reply Last reply Reply Quote 0
          • advocatuxA Offline
            advocatux
            last edited by

            @mungorae please see this https://forums.ubports.com/post/12942 to get the full picture of what's going to happen 🙂

            1 Reply Last reply Reply Quote 0
            • F Offline
              fulvio @mungorae
              last edited by

              Hi @mungorae
              to run the application (not deploy it) on desktop try a:
              clickable - -xenial - -desktop
              (or: clickable - -desktop )
              should works (See Getting started section: http://clickable.bhdouglass.com/en/latest/getting-started.html)
              Looking at your last posted output, your app is package successfully as .click package and deployed on your connected phone; so that should run also on desktop.
              (Note: you can RUN the app on the desktop without any device connected; but you can't deploy it on desktop; ".click" package is not supported is only for mobile device).

              1 Reply Last reply Reply Quote 1

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              • First post
                Last post