我的应用在Android 10
具有以下调用堆栈的设备上崩溃:
backtrace:
#00 pc 000000000006f06c /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)
#01 pc 00000000000500fc /system/lib64/libc++.so (abort_message+232)
#02 pc 0000000000050218 /system/lib64/libc++.so (demangling_terminate_handler()+44)
#03 pc 00000000000646c4 /system/lib64/libc++.so (std::__terminate(void (*)())+12)
#04 pc 000000000006466c /system/lib64/libc++.so (std::terminate()+52)
#05 pc 00000000000bb150 /system/lib64/libc++.so (std::__1::thread::~thread()+20)
#06 pc 00000000000d0f48 /apex/com.android.runtime/lib64/bionic/libc.so (__cxa_finalize+212)
#07 pc 00000000000cc930 /apex/com.android.runtime/lib64/bionic/libc.so (exit+24)
#08 pc 0000000000032f30 /data/app/com.domain.myapp-Rs_sm5VrLR1Jj8QW6oYByA==/lib/arm64/libplugins_platforms_qtforandroid_arm64-v8a.so
我不知道何时何地会发生这种情况,因为我无法在我的设备和仿真器上重现此问题,但是这种情况在用户端密集地发生,并且仅在Android 10
(不是在以前的Android版本上)发生。
我的QT
版本是5.14.2。
我们刚刚发布了其中一款游戏的更新,看起来崩溃已修复。这就是我们所做的:使用Android后退按钮时,Android 10和Android 9显示不同的默认行为。在Android 10上,该应用程序已关闭,但在控制台输出上,我看到该应用程序在真正退出之前陷入了循环约5秒钟。在Android 9上不会发生这种情况。这是当我按下“后退”按钮并关闭应用程序时在Android 10设备上获得的输出:
....
05-04 18:26:21.315 26882 26908 I nkeycat.tendow:
I nkeycat.tendow: QarthPatchMonintor::CheckNotifyEvent
05-04 18:26:21.315 26882 26908 I nkeycat.tendow:
I nkeycat.tendow: QarthPatchMonintor::CheckNotifyEvent before read
05-04 18:26:21.315 26882 26908 I nkeycat.tendow:
I nkeycat.tendow: QarthPatchMonintor::CheckNotifyEvent after read, length = -1
05-04 18:26:21.315 26882 26908 I nkeycat.tendow:
I nkeycat.tendow: QarthPatchMonintor::CheckNotifyEvent
05-04 18:26:21.315 26882 26908 I
...
我现在在QML中到处都有Android后退按钮,当用户确实要退出该应用程序时,我调用以下自定义Java函数来正常退出:
public String quitApp() { // Qt C++ call
try {
finishAffinity();
System.exit(0);
} catch (Exception exc) {
exc.printStackTrace();
logException(exc);
}
return "";
}
我们还实现了David K. Hess的建议。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句