问题描述:

I have an app which uses private custom framework made by Qt. The app works on Android 6 and lower and crash on Android 7 N. Seems the issue is quite popular but I still don't understand the cause of the crash. Could you please help?

D/LVLDownloader: All expansion files are already here

W/art: Suspending all threads took: 21.007ms

W/linker: library "libui.so" ("/system/lib/libui.so") needed or dlopened by "/data/app/com.nn.apps.qt/lib/arm/libgbuffer.so" is not accessible for the namespace "classloader-namespace" - the access is temporarily granted as a workaround for http://b/26394120, note that the access will be removed in future releases of Android.

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5Concurrent.so: unused DT entry: type 0xf arg 0xbea

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5AndroidExtras.so: unused DT entry: type 0xf arg 0x5012

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5Bluetooth.so: unused DT entry: type 0xf arg 0x5257

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5Gui.so: unused DT entry: type 0xf arg 0x4aa94

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5Network.so: unused DT entry: type 0xf arg 0x10ca1

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5OpenGL.so: unused DT entry: type 0xf arg 0xbc0b

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5Widgets.so: unused DT entry: type 0xf arg 0x69290

W/linker: /data/app/com.nn.apps.qt/lib/arm/libavcodec.so: is missing DT_SONAME will use basename as a replacement: "libavcodec.so"

W/linker: /data/app/com.nn.apps.qt/lib/arm/libavfilter.so: is missing DT_SONAME will use basename as a replacement: "libavfilter.so"

W/linker: /data/app/com.nn.apps.qt/lib/arm/libavformat.so: is missing DT_SONAME will use basename as a replacement: "libavformat.so"

W/linker: /data/app/com.nn.apps.qt/lib/arm/libavutil.so: is missing DT_SONAME will use basename as a replacement: "libavutil.so"

W/linker: /data/app/com.nn.apps.qt/lib/arm/libswresample.so: is missing DT_SONAME will use basename as a replacement: "libswresample.so"

W/linker: /data/app/com.nn.apps.qt/lib/arm/libswscale.so: is missing DT_SONAME will use basename as a replacement: "libswscale.so"

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5AndroidExtras.so: unused DT entry: type 0xf arg 0x5012

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5Concurrent.so: unused DT entry: type 0xf arg 0xbea

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5Widgets.so: unused DT entry: type 0xf arg 0x69290

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5Gui.so: unused DT entry: type 0xf arg 0x4aa94

W/linker: /data/app/com.nn.apps.qt/lib/arm/libQt5Gui.so: unused DT entry: type 0xf arg 0x4aa94

D/SPP_ANDROID: ENTERING JNI_OnLoad_libovsdk

D/SPP_ANDROID: ENTERING init_jni_context

D/SPP_ANDROID: ENTERING get_environment

D/SPP_ANDROID: Get context

D/SPP_ANDROID: Environment is OK

D/SPP_ANDROID: EXITING get_environment

D/SPP_ANDROID: Get class

D/SPP_ANDROID: EXITING JNI_OnLoad_libovsdk

W/BaseLogger: ======= Logs are being cached, please initialize the logger (LoggerSingleton::instance().init()) =======

D/NNListenerSingleton: : In prepareFirmwareFileAndGetPath - /storage/emulated/0/Android/data/com.nn.apps.qt/logs

A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 1334 (apps.qt)

[ 10-04 00:55:12.628 184: 184 W/ ]

debuggerd: handling request: pid=1334 uid=10257 gid=10257 tid=1334

网友答案:

Your app uses private libraries are not accessible anymore. Please read about it here https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk Basically Android will not allow using it's private libraries that are not in NDK. You may not use it them directly but your other libraries or frameworks may and this causes the crash.

相关阅读:
Top