QT 5.15.2 and recent mobile devices running Android 11 (API 30) = FAILURE
-
ok fellas, now this is huge.
and as of now we have no idea how to tackle this.The problem surfaced out of thin air as we switched from targetting Android API 29 to 30 which is now REQUIRED for any new app by the Play Store.
events as soon as execution enters main() (hint: seemingly no critical errors)
W Zygote : Unable to open libbeluga.so: dlopen failed: library "libbeluga.so" not found. I ect.GRIDNEToke: Late-enabling -Xcheck:jni I ect.GRIDNEToke: Unquickening 20 vdex files! W ActivityThread: Application org.gridnetproject.GRIDNEToken is waiting for the debugger on port 8100... 18:41:49: Debugging "-qmljsdebugger=port:51072,block,services:DebugMessages,QmlDebugger,V8Debugger,QmlInspector,DebugTranslation" ... I System.out: Sending WAIT chunk I System.out: Debugger has connected I System.out: waiting for debugger to settle... I System.out: waiting for debugger to settle... I System.out: waiting for debugger to settle... Could not load shared library symbols for 308 libraries, e.g. /system/lib64/libandroid_runtime.so. Use the "info sharedlibrary" command to see the complete listing. Do you need "set solib-search-path" or "set sysroot"?I System.out: debugger has settled (9329) I Perf : Connecting to perf service. D NetworkSecurityConfig: No Network Security Config specified, using platform default W Looper : PerfMonitor longMsg : seq=3 plan=18:41:48.939 late=1ms wall=11687ms running=105ms runnable=8ms binder=25ms h=android.app.ActivityThread$H w=110 procState=2 D NetworkSecurityConfig: No Network Security Config specified, using platform default W System : ClassLoader referenced unknown path: D Qt JAVA : Class org.qtproject.qt5.android.multimedia.QtMultimediaUtils does not implement setActivity method Could not load shared library symbols for /data/app/~~c5F1acAMN2-iUDPPdqf0Sg==/org.gridnetproject.GRIDNEToken-TAaTKU8q9vk3t1eFAp0hBQ==/lib/arm64/libc++_shared.so. Do you need "set solib-search-path" or "set sysroot"?The index cache directory name is empty, skipping store. I QtCore : Start I ect.GRIDNEToke: Waiting for a blocking GC ProfileSaver I ect.GRIDNEToke: WaitForGcToComplete blocked ProfileSaver on RunEmptyCheckpoint for 370.881ms I ect.GRIDNEToke: ProcessProfilingInfo new_methods=0 is saved saved_to_disk=0 resolve_classes_delay=8000 I Qt : qt started The index cache directory name is empty, skipping store. W Activity: Slow Operation: Activity org.gridnetproject.GRIDNEToken/org.ftylitak.qzxing.GRIDNETokenActivity onCreate took 20582ms W Looper : PerfMonitor longMsg : seq=4 plan=18:41:48.947 late=11697ms wall=20637ms running=214ms runnable=30ms binder=34ms h=android.app.ActivityThread$H w=159 procState=2 W Looper : PerfMonitor looperActivity : package=org.gridnetproject.GRIDNEToken/org.ftylitak.qzxing.GRIDNETokenActivity time=20637ms latency=11697ms running=214ms procState=2 ClientTransaction{ callbacks=[android.app.servertransaction.LaunchActivityItem] lifecycleRequest=android.app.servertransaction.ResumeActivityItem } historyMsgCount=1 (msgIndex=1 wall=11687ms seq=3 running=105ms runnable=8ms binder=25ms late=1ms h=android.app.ActivityThread$H w=110) W Looper : PerfMonitor looperActivity : package=org.gridnetproject.GRIDNEToken/org.ftylitak.qzxing.GRIDNETokenActivity time=0ms latency=32336ms running=0ms procState=2 ClientTransaction{ callbacks=[android.app.servertransaction.TopResumedActivityChangeItem] } historyMsgCount=2 (msgIndex=1 wall=11687ms seq=3 running=105ms runnable=8ms binder=25ms late=1ms h=android.app.ActivityThread$H w=110) (msgIndex=2 wall=20637ms seq=4 running=214ms runnable=30ms binder=34ms late=11697ms h=android.app.ActivityThread$H w=159) I AdrenoGLES-0: QUALCOMM build : c955512, I7f951b4bce I AdrenoGLES-0: Build Date : 04/20/21 I AdrenoGLES-0: OpenGL ES Shader Compiler Version: EV031.32.02.07 I AdrenoGLES-0: Local Branch : I AdrenoGLES-0: Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.9.1.R1.11.00.00.604.067 I AdrenoGLES-0: Remote Branch : NONE I AdrenoGLES-0: Reconstruct Branch : NOTHING I AdrenoGLES-0: Build Config : S P 10.0.6 AArch64 I AdrenoGLES-0: Driver Path : /vendor/lib64/egl/libGLESv2_adreno.so Could not load shared library symbols for /vendor/lib64/hw/gralloc.sm6150.so. Do you need "set solib-search-path" or "set sysroot"?W BpBinder: PerfMonitor binderTransact : time=300ms interface=android.view.IWindowSession code=1598968902 W BpBinder: PerfMonitor binderTransact : time=248ms interface=android.view.IWindowSession code=13 I AdrenoGLES-0: PFP: 0x016ee190, ME: 0x00000000 Could not load shared library symbols for /vendor/lib64/libadreno_app_profiles.so. Do you need "set solib-search-path" or "set sysroot"?
But thenn, all of the sudden, as soon as we attempt to instantiate
Application customApp;
Sig-abort is thrown due to
E libc++abi: terminating with uncaught exception of type SE::AbortException: Invalid code.
now.. what could THAT be?
invalid binary code?
We're using aarch64 compiler and debugger which are presumably best options for a target device which supports arm64-v8a, armeabi-v7a and armeabi.
Additional things that we've observed:
-
when targeting API 29... the app WORKS. There ARE LOTS OF glitches to renderings of some of the items(qt-shaders related, which are NOT apparent on devices running Android <=10, stillNEVERMIND that for now). Since there was NO WAY to run Android Debugger with API 30 under Windows, under the assumption that one is unwilling to recompile all the libraries the project relies to x86 instead of ARM) we went and bought few flagship devices and became aware of such things.
-
AS SOON AS we switch target API from 29 to 30... it goes DEAD.. and I mean dead as f**** due to the aforementioned sig-abort.
ONE NEEDS TO TEST IT ON Android >=11. On Android 10 device everything would be FINE (same binary targeted for Android 11).
Ideas?
We the open source users are stuck with QT 5.15.2... is this FIXED in more recent PAID-FOR versions? We CAN pay but we WANT to have this s**** fixed and up and running.
-
-
ok fellas, now this is huge.
and as of now we have no idea how to tackle this.The problem surfaced out of thin air as we switched from targetting Android API 29 to 30 which is now REQUIRED for any new app by the Play Store.
events as soon as execution enters main() (hint: seemingly no critical errors)
W Zygote : Unable to open libbeluga.so: dlopen failed: library "libbeluga.so" not found. I ect.GRIDNEToke: Late-enabling -Xcheck:jni I ect.GRIDNEToke: Unquickening 20 vdex files! W ActivityThread: Application org.gridnetproject.GRIDNEToken is waiting for the debugger on port 8100... 18:41:49: Debugging "-qmljsdebugger=port:51072,block,services:DebugMessages,QmlDebugger,V8Debugger,QmlInspector,DebugTranslation" ... I System.out: Sending WAIT chunk I System.out: Debugger has connected I System.out: waiting for debugger to settle... I System.out: waiting for debugger to settle... I System.out: waiting for debugger to settle... Could not load shared library symbols for 308 libraries, e.g. /system/lib64/libandroid_runtime.so. Use the "info sharedlibrary" command to see the complete listing. Do you need "set solib-search-path" or "set sysroot"?I System.out: debugger has settled (9329) I Perf : Connecting to perf service. D NetworkSecurityConfig: No Network Security Config specified, using platform default W Looper : PerfMonitor longMsg : seq=3 plan=18:41:48.939 late=1ms wall=11687ms running=105ms runnable=8ms binder=25ms h=android.app.ActivityThread$H w=110 procState=2 D NetworkSecurityConfig: No Network Security Config specified, using platform default W System : ClassLoader referenced unknown path: D Qt JAVA : Class org.qtproject.qt5.android.multimedia.QtMultimediaUtils does not implement setActivity method Could not load shared library symbols for /data/app/~~c5F1acAMN2-iUDPPdqf0Sg==/org.gridnetproject.GRIDNEToken-TAaTKU8q9vk3t1eFAp0hBQ==/lib/arm64/libc++_shared.so. Do you need "set solib-search-path" or "set sysroot"?The index cache directory name is empty, skipping store. I QtCore : Start I ect.GRIDNEToke: Waiting for a blocking GC ProfileSaver I ect.GRIDNEToke: WaitForGcToComplete blocked ProfileSaver on RunEmptyCheckpoint for 370.881ms I ect.GRIDNEToke: ProcessProfilingInfo new_methods=0 is saved saved_to_disk=0 resolve_classes_delay=8000 I Qt : qt started The index cache directory name is empty, skipping store. W Activity: Slow Operation: Activity org.gridnetproject.GRIDNEToken/org.ftylitak.qzxing.GRIDNETokenActivity onCreate took 20582ms W Looper : PerfMonitor longMsg : seq=4 plan=18:41:48.947 late=11697ms wall=20637ms running=214ms runnable=30ms binder=34ms h=android.app.ActivityThread$H w=159 procState=2 W Looper : PerfMonitor looperActivity : package=org.gridnetproject.GRIDNEToken/org.ftylitak.qzxing.GRIDNETokenActivity time=20637ms latency=11697ms running=214ms procState=2 ClientTransaction{ callbacks=[android.app.servertransaction.LaunchActivityItem] lifecycleRequest=android.app.servertransaction.ResumeActivityItem } historyMsgCount=1 (msgIndex=1 wall=11687ms seq=3 running=105ms runnable=8ms binder=25ms late=1ms h=android.app.ActivityThread$H w=110) W Looper : PerfMonitor looperActivity : package=org.gridnetproject.GRIDNEToken/org.ftylitak.qzxing.GRIDNETokenActivity time=0ms latency=32336ms running=0ms procState=2 ClientTransaction{ callbacks=[android.app.servertransaction.TopResumedActivityChangeItem] } historyMsgCount=2 (msgIndex=1 wall=11687ms seq=3 running=105ms runnable=8ms binder=25ms late=1ms h=android.app.ActivityThread$H w=110) (msgIndex=2 wall=20637ms seq=4 running=214ms runnable=30ms binder=34ms late=11697ms h=android.app.ActivityThread$H w=159) I AdrenoGLES-0: QUALCOMM build : c955512, I7f951b4bce I AdrenoGLES-0: Build Date : 04/20/21 I AdrenoGLES-0: OpenGL ES Shader Compiler Version: EV031.32.02.07 I AdrenoGLES-0: Local Branch : I AdrenoGLES-0: Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.9.1.R1.11.00.00.604.067 I AdrenoGLES-0: Remote Branch : NONE I AdrenoGLES-0: Reconstruct Branch : NOTHING I AdrenoGLES-0: Build Config : S P 10.0.6 AArch64 I AdrenoGLES-0: Driver Path : /vendor/lib64/egl/libGLESv2_adreno.so Could not load shared library symbols for /vendor/lib64/hw/gralloc.sm6150.so. Do you need "set solib-search-path" or "set sysroot"?W BpBinder: PerfMonitor binderTransact : time=300ms interface=android.view.IWindowSession code=1598968902 W BpBinder: PerfMonitor binderTransact : time=248ms interface=android.view.IWindowSession code=13 I AdrenoGLES-0: PFP: 0x016ee190, ME: 0x00000000 Could not load shared library symbols for /vendor/lib64/libadreno_app_profiles.so. Do you need "set solib-search-path" or "set sysroot"?
But thenn, all of the sudden, as soon as we attempt to instantiate
Application customApp;
Sig-abort is thrown due to
E libc++abi: terminating with uncaught exception of type SE::AbortException: Invalid code.
now.. what could THAT be?
invalid binary code?
We're using aarch64 compiler and debugger which are presumably best options for a target device which supports arm64-v8a, armeabi-v7a and armeabi.
Additional things that we've observed:
-
when targeting API 29... the app WORKS. There ARE LOTS OF glitches to renderings of some of the items(qt-shaders related, which are NOT apparent on devices running Android <=10, stillNEVERMIND that for now). Since there was NO WAY to run Android Debugger with API 30 under Windows, under the assumption that one is unwilling to recompile all the libraries the project relies to x86 instead of ARM) we went and bought few flagship devices and became aware of such things.
-
AS SOON AS we switch target API from 29 to 30... it goes DEAD.. and I mean dead as f**** due to the aforementioned sig-abort.
ONE NEEDS TO TEST IT ON Android >=11. On Android 10 device everything would be FINE (same binary targeted for Android 11).
Ideas?
We the open source users are stuck with QT 5.15.2... is this FIXED in more recent PAID-FOR versions? We CAN pay but we WANT to have this s**** fixed and up and running.
@Vega4 said in QT 5.15.2 and recent mobile devices running Android 11 (API 30) = FAILURE:
We CAN pay but we WANT to have this s**** fixed and up and running.
You could check the patch notes and bug fixes for 5.15.3+ to see if something got fixed, that might cause your crash.
But, I'm sorry, I'm not an expert when it comes to Android / ARM cross compiling... probably others can help better :)
-
-
We've filed a Bug Report and they've reassigned it to a multimedia department
https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-101080?filter=allopenissues
it all feels like a JOKE..
A kid would notice that Qt 5.15.2 attempts to read a missing SO system shared library When targeting API 30 but they re-assign it to Multimedia.
We've pin-pointed THIS among others in a bug-report within clearly visible bullet-points.
And still.. they re-assign to Multimedia............Their multimedia was broken the very first moment we attempted to use it so we've implemented/used external platform specific sound-processing of our own.
You can create any project and reproduce it. LoL.
Seeing THIS we don't even dare switching to QT 6