Недавно я обновил одно из наших приложений Playstore, написанных на Qt / QML, и получаю огромное количество аварий "в аварийном режиме". Cra sh исключительно происходит на Android 10 устройств. Приложение было собрано с использованием Qt 5.13.2 и Target SDK 28 (Android 9). К сожалению, я не могу воспроизвести cra sh на любом из наших Android 10 устройств.
JDK: jdk1.8.0_241.jdk
NDK: android -ndk-r21
Это похоже на похожую проблему, но не совсем идентично. в Abort Cra sh
Любые идеи относительно того, что может вызвать этот Cra sh будет высоко ценится. Это трассировка стека, как показано в консоли Google Playstore:
backtrace:
#00 pc 000000000006f06c /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)
#01 pc 00000000000cf71c /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+116)
#02 pc 00000000000cee50 /apex/com.android.runtime/lib64/bionic/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*, char const*)+52)
#03 pc 00000000000cecb4 /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+148)
#04 pc 00000000000cd6e4 /apex/com.android.runtime/lib64/bionic/libc.so (pthread_cond_wait+72)
#05 pc 0000000000071674 /system/lib64/libc++.so (std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)+20)
#06 pc 00000000000198dc /system/lib64/libstagefright_bufferpool@2.0.so (android::hardware::media::bufferpool::V2_0::implementation::Accessor::Impl::invalidatorThread(std::__1::map<unsigned int, std::__1::weak_ptr<android::hardware::media::bufferpool::V2_0::implementation::Accessor::Impl> const, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::weak_ptr<android::hardware::media::bufferpool::V2_0::implementation::Accessor::Impl> const>>>&, std::__1::mutex&, std::__1::condition_variable&, bool&) [clone .cfi]+132)
#07 pc 0000000000019f4c /system/lib64/libstagefright_bufferpool@2.0.so (void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::map<unsigned int, std::__1::weak_ptr<android::hardware::media::bufferpool::V2_0::implementation::Accessor::Impl> const, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::weak_ptr<android::hardware::media::bufferpool::V2_0::implementation::Accessor::Impl> const> > >&, std::__1::mutex&, std::__1::condition_variable&, bool&), std::__1::reference_wrapper<std::__1::map<unsigned int, std::__1::weak_ptr<android::hardware::media::bufferpool::V2_0::implementation::Accessor::Impl> const, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::weak_ptr<android::hardware::media::bufferpool::V2_0::implementation::Accessor::Impl> const> > > >, std::__1::reference_wrapper<std::__1::mutex>, std::__1::reference_wrapper<std::__1::condition_variable>, std::__1::reference_wrapper<bool> > >(void*) (.cfi)+64)
#08 pc 00000000000ce190 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36)
#09 pc 0000000000070ba8 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)