Forums

OverviewFelgo 2 Support (Qt 5) › Hard crash using CameraVPlay and Android

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #18257

    Marcin

    Hi Felgo,
    Possibly I am hitting issue with CameraVPlay.

    Sample code:

    import Felgo 3.0
    import QtQuick 2.0
    
    GameWindow {
        id: gameWindow
    
        activeScene: gameScene
        screenWidth: 320
        screenHeight: 569
    
        Scene {
            id: gameScene
    
            // set scene alignment
            sceneAlignmentX: "left"
            sceneAlignmentY: "top"
    
            CameraVPlay {
                id: camera
    
                // set the gameWindowSize and entityContainer required for the camera
                gameWindowSize: Qt.point(gameScene.gameWindowAnchorItem.width, gameScene.gameWindowAnchorItem.height)
                entityContainer: container
    
                // if you don't set the focusedObject property, or set it to null, the camera is freely movable
                focusedObject: null
    
                // set the camera's limits
                limitLeft: 0
                limitRight: 600
                limitTop: 0
                limitBottom: 400
            }
    
            Item {
                id: container
            }
        }
    }

    When using Android (7.0, Samsung 6s) it crashes right at start.
    It doesn’t matter if it’s VPlay Live or standard deployment.

    Last lines of error log:

    D mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000,  [1440x2560]-format:1
    D ViewRootImpl@60f4d4f[VPlayActivity]: mHardwareRenderer.updateSurface() mSurface={isValid=true -984743936}
    D SurfaceView: Relayout returned: oldFrame=[0,0][0,0] newFrame=[0,0][1440,2560] result=0x7 surface={Surface(name=null)/@0xd04283f isValid=true -984741888}
    D mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000,  [1440x2560]-format:1
    D SurfaceView: Relayout returned: oldFrame=[0,0][1440,2560] newFrame=[0,0][1440,2560] result=0x1 surface={Surface(name=null)/@0xd04283f isValid=true -985124864}
    
    ...
    
    F libc    : Fatal signal 11 (SIGSEGV), code 2, fault addr 0xc9d55e34 in tid 28891 (QtMainThread)
    

    I didn’t test iOS yet.

    Are you able to replicate it?
    I can’t find any issue on my part, maybe I miss something?

    PS. I am using newest VPlay, 2.15.0 and Linux Mint 18.3

     

    #18263

    Günther
    Felgo Team

    Hi,
    thanks for reporting the issue.

    I’m able to reproduce the crash, we’ll look into it!

    Best,
    Günther

    #18265

    Marcin

    Hi Günther,
    This is kind of important for me so hopefully you will be able to fix it “soon”.
    Fingers crossed.

    #18584

    Marcin

    Hi Günther,
    Since it’s over a month, and I would really like to use this component to prepare my demo for one of the conferences, is there any progress?
    Did you have opportunity to look at the issue?

    As you probably know, the problem still exists in 2.15.1.

    #18589

    Alex
    Felgo Team

    Hi Marcin,

    can you please confirm that this still happens after you clean and rebuild your project with the latest Felgo version? What Android version are you building against?

    I just tried it on Android 6.0.1 and 4.3 devices that I had on my desk, and it not crash.

    Cheers,
    Alex

    #18590

    Marcin

    Hi Alex,
    Didn’t try with clean rebuild, will check later and let you know.

    #18591

    Alex
    Felgo Team

    Thx Marcin, looking forward.

    Also I can confirm this snippet crashing with the Live Client App on Android, while working on iOS. The responsible line is setting the gameWindowSize property. Looks like this binding may cause trouble at startup on Android, however for me this only happens with Felgo Live, not with normal deployment.

    Cheers,
    Alex

    #18593

    Marcin

    Hi Alex,
    First quick test shows it still breaks for me on Android.
    What version of SDK/NDK for Android do you use?
    I use some old one maybe that is the reason.
    Will do some more tests.

    #18595

    Marcin

    Hi Alex,
    I spent some time testing and narrowed the exact combination which trigger the issue, for me.
    I tested 3 scenarios, snippet above, completely new project from wizard and adding camera to existing game.
    In all cases everything is replicable 100%, for me.

    So, bottom line it is a combination of entityContainer and limits that causes the crash.

     

    1.
    If I don’t set entityContainer property, the limits I set don’t matter.
    It doesn’t crash at the beginning(just once I try to use it but this is because I don’t set entityContainer, I think:))
    2.
    If I set entityContainer, then it crashes at the beginning when you use the same axis limits, for example:
    Crash if you set both limitLeft and limitRight OR if you set both limitTop and limitBottom.
    It DOESN’t crash for combinations like, limitTop and limitLeft etc.
    The value you set doesn’t matter.

    It crashes for me on Samsung S3(Android 4.1), Samsung S6(Android 7.0), Sony Xperia(Android 8.0) and iPhone 6S(iOS 11.2).
    What is funny, the combination that crashes mobile devices doesn’t crash desktop BUT it prints extra error:

    qrc:///qml/VPlay/sprites/CameraVPlay.qml:532: RangeError: Maximum call stack size exceeded.

    Both Linux and MacOS desktop kits.

     

     

    Now will be some spam, some logs from few devices on crash:
    iPhone:

    qrc:///qml/VPlay/sprites/CameraVPlay.qml:428: TypeError: Cannot write property of null
    
    qml: If you want to remove the Felgo Splash & loading screen, or to use plugins for monetization, analytics, push notifications, social networks & more, generate a license key for your app here: http://felgo.com/licenseKey
    
    program received signal -111, thread:dc855;00:00002bb401000000;01:1000000000000000;02:0000000000000000;03:20b18c0801000000;04:80b18c0801000000;05:7082646d01000000;06:0100000000000000;07:0000000000000000;08:1000000000000000;09:0300000000000000;0a:f300000000000000;0b:0c00000000000000;0c:0000000000000000;0d:0200000000000000;0e:b600000000000000;0f:0000000000000000;10:20c54b8401000000;11:4cec810201000000;12:5c92291df0ffffff;13:1000000000000000;14:58b2c00801000000;15:0000000000000000;16:48b2c00801000000;17:50b2c00801000000;18:d081646d01000000;19:0020030000000000;1a:882e050401000000;1b:4cb5800501000000;1c:0000000000000000;1d:3080646d01000000;1e:40c54b8401000000;1f:2080646d01000000;20:dc9a4b8401000000;21:00000020;metype:1;mecount:2;medata:2;medata:16d647fe0;memory:0x16d648030=5080646d0100000008f7b88301000000;memory:0x16d648050=d080646d01000000ec03560301000000;
    
    program received signal -111, thread:dc855;00:00002bb401000000;01:1000000000000000;02:0000000000000000;03:20b18c0801000000;04:80b18c0801000000;05:7082646d01000000;06:0100000000000000;07:0000000000000000;08:1000000000000000;09:0300000000000000;0a:f300000000000000;0b:0c00000000000000;0c:0000000000000000;0d:0200000000000000;0e:b600000000000000;0f:0000000000000000;10:20c54b8401000000;11:4cec810201000000;12:5c92291df0ffffff;13:1000000000000000;14:58b2c00801000000;15:0000000000000000;16:48b2c00801000000;17:50b2c00801000000;18:d081646d01000000;19:0020030000000000;1a:882e050401000000;1b:4cb5800501000000;1c:0000000000000000;1d:3080646d01000000;1e:40c54b8401000000;1f:2080646d01000000;20:dc9a4b8401000000;21:00000020;metype:1;mecount:2;medata:2;medata:16d647fe0;memory:0x16d648030=5080646d0100000008f7b88301000000;memory:0x16d648050=d080646d01000000ec03560301000000;
    
    program received signal -111, thread:dc855;00:00002bb401000000;01:1000000000000000;02:0000000000000000;03:20b18c0801000000;04:80b18c0801000000;05:7082646d01000000;06:0100000000000000;07:0000000000000000;08:1000000000000000;09:0300000000000000;0a:f300000000000000;0b:0c00000000000000;0c:0000000000000000;0d:0200000000000000;0e:b600000000000000;0f:0000000000000000;10:20c54b8401000000;11:4cec810201000000;12:5c92291df0ffffff;13:1000000000000000;14:58b2c00801000000;15:0000000000000000;16:48b2c00801000000;17:50b2c00801000000;18:d081646d01000000;19:0020030000000000;1a:882e050401000000;1b:4cb5800501000000;1c:0000000000000000;1d:3080646d01000000;1e:40c54b8401000000;1f:2080646d01000000;20:dc9a4b8401000000;21:00000020;metype:1;mecount:2;medata:2;medata:16d647fe0;memory:0x16d648030=5080646d0100000008f7b88301000000;memory:0x16d648050=d080646d01000000ec03560301000000;
    
    program received signal -111, thread:dc855;00:00002bb401000000;01:1000000000000000;02:0000000000000000;03:20b18c0801000000;04:80b18c0801000000;05:7082646d01000000;06:0100000000000000;07:0000000000000000;08:1000000000000000;09:0300000000000000;0a:f300000000000000;0b:0c00000000000000;0c:0000000000000000;0d:0200000000000000;0e:b600000000000000;0f:0000000000000000;10:20c54b8401000000;11:4cec810201000000;12:5c92291df0ffffff;13:1000000000000000;14:58b2c00801000000;15:0000000000000000;16:48b2c00801000000;17:50b2c00801000000;18:d081646d01000000;19:0020030000000000;1a:882e050401000000;1b:4cb5800501000000;1c:0000000000000000;1d:3080646d01000000;1e:40c54b8401000000;1f:2080646d01000000;20:dc9a4b8401000000;21:00000020;metype:1;mecount:2;medata:2;medata:16d647fe0;memory:0x16d648030=5080646d0100000008f7b88301000000;memory:0x16d648050=d080646d01000000ec03560301000000;
    
    program received signal -111, thread:dc855;00:00002bb401000000;01:1000000000000000;02:0000000000000000;03:20b18c0801000000;04:80b18c0801000000;05:7082646d01000000;06:0100000000000000;07:0000000000000000;08:1000000000000000;09:0300000000000000;0a:f300000000000000;0b:0c00000000000000;0c:0000000000000000;0d:0200000000000000;0e:b600000000000000;0f:0000000000000000;10:20c54b8401000000;11:4cec810201000000;12:5c92291df0ffffff;13:1000000000000000;14:58b2c00801000000;15:0000000000000000;16:48b2c00801000000;17:50b2c00801000000;18:d081646d01000000;19:0020030000000000;1a:882e050401000000;1b:4cb5800501000000;1c:0000000000000000;1d:3080646d01000000;1e:40c54b8401000000;1f:2080646d01000000;20:dc9a4b8401000000;21:00000020;metype:1;mecount:2;medata:2;medata:16d647fe0;memory:0x16d648030=5080646d0100000008f7b88301000000;memory:0x16d648050=d080646d01000000ec03560301000000;
    
    program received signal -111, thread:dc855;00:00002bb401000000;01:1000000000000000;02:0000000000000000;03:20b18c0801000000;04:80b18c0801000000;05:7082646d01000000;06:0100000000000000;07:0000000000000000;08:1000000000000000;09:0300000000000000;0a:f300000000000000;0b:0c00000000000000;0c:0000000000000000;0d:0200000000000000;0e:b600000000000000;0f:0000000000000000;10:20c54b8401000000;11:4cec810201000000;12:5c92291df0ffffff;13:1000000000000000;14:58b2c00801000000;15:0000000000000000;16:48b2c00801000000;17:50b2c00801000000;18:d081646d01000000;19:0020030000000000;1a:882e050401000000;1b:4cb5800501000000;1c:0000000000000000;1d:3080646d01000000;1e:40c54b8401000000;1f:2080646d01000000;20:dc9a4b8401000000;21:00000020;metype:1;mecount:2;medata:2;medata:16d647fe0;memory:0x16d648030=5080646d0100000008f7b88301000000;memory:0x16d648050=d080646d01000000ec03560301000000;
    
    hit maximum number of consecutive signals, stopping

    Or Android 7.0:

    D ViewRootImpl@d5b1eca[VPlayActivity]: Relayout returned: oldFrame=[0,0][1440,2560] newFrame=[0,0][1440,2560] result=0x1 surface={isValid=true -857722880} surfaceGenerationChanged=false
    D InputMethodManager: HSI from window - flag : 0 Pid : 20839
    I InputMethodManager: HSI ignore mServedView == null or mServedView.getWindowToken() != windowToken, mServedView :DecorView@d69d83b[VPlayActivity]
    D ViewRootImpl@d5b1eca[VPlayActivity]: Relayout returned: oldFrame=[0,0][1440,2560] newFrame=[0,0][1440,2560] result=0x7 surface={isValid=true -979437568} surfaceGenerationChanged=true
    D mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000,  [1440x2560]-format:1
    D ViewRootImpl@d5b1eca[VPlayActivity]: mHardwareRenderer.updateSurface() mSurface={isValid=true -979437568}
    D SurfaceView: Relayout returned: oldFrame=[0,0][0,0] newFrame=[0,0][1440,2560] result=0x7 surface={Surface(name=null)/@0x860ce7a isValid=true -957689856}
    D mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000,  [1440x2560]-format:1
    D SurfaceView: Relayout returned: oldFrame=[0,0][1440,2560] newFrame=[0,0][1440,2560] result=0x1 surface={Surface(name=null)/@0x860ce7a isValid=true -857856000}
    F libc    : Fatal signal 11 (SIGSEGV), code 2, fault addr 0xcc762e2c in tid 21414 (QtMainThread)

    Funny that Android 8.0 crashes on compilation bit(app starts but stops at the beginning, nothing in the app log, maybe need to update some settings on device?) with:

    Error while building/deploying project CameraDemo (kit: Android for armeabi-v7a (GCC 4.9, Qt 5.10.1 Android armv7 Felgo))

     

     

    At least I can play with it considering the property for limits, to not set the clashing ones.
    Hope it will help.
    If you need anything more, like diff of logs when it crashes and when it doesn’t, etc, please let me know.

Viewing 9 posts - 1 through 9 (of 9 total)

RSS feed for this thread

You must be logged in to reply to this topic.

Voted #1 for:

  • Easiest to learn
  • Most time saving
  • Best support

Develop Cross-Platform Apps and Games 50% Faster!

  • Voted the best supported, most time-saving and easiest to learn cross-platform development tool
  • Based on the Qt framework, with native performance and appearance on all platforms including iOS and Android
  • Offers a variety of plugins to monetize, analyze and engage users
FREE!
create apps
create games
cross platform
native performance
3rd party services
game network
multiplayer
level editor
easiest to learn
biggest time saving
best support