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.