์ด๋ฒ์ ๋น๋๋ฅผ ์
๋ฐ์ดํธํ๊ณ ๋์ ํฌ๋์๊ฐ ์์ฒญ ๋์๊ฑฐ๋ ?
์ด๋ฐ ์ผ์ด ์์๊น๋ด ๋น๋ ์ฌ๋ฆด ๋ ๊ตฌ๊ธ ํ๋ ์ด๋ ํ์ด์ด๋ฒ ์ด์ค์ ๋๋ฒ๊น
์ ์ํ ์ฌ๋ณผ๋ ์ถ๊ฐํ์๋จ ๋ง์ผ.
๊ทธ๋ผ ์ข ๋ ์์ธํ ์ ๋ณด๊ฐ ๋ด๊ฒ ์ง? ์ถ์ด์ ๋ณด๋๋ฐ...
๋ก๊ทธ๋ฅผ ๋ด๋ ๋ญ ๋ง์ธ์ง ํ๋๋ ๋ชจ๋ฅด๊ฒ ์;; ๋ญ๋ผ๋ ์ง์๊ฐ๋๊ฒ ์์ด์ผ ์ฐพ์๋ณผํ
๋ฐ ใ
์ด๊ฑด ๊ตฌ๊ธ ํ๋ ์ด์์ ์ ๊ณตํ๋ ๋น์ ์ ์ข
๋ฃ์ ์คํ ํธ๋ ์ด์ค๊ตฌ
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.Romanbard.Jumo <<<
backtrace:
#00 pc 0000000000051b7c /apex/com.android.runtime/lib64/bionic/libc.so (abort+168)
#00 pc 00000000006d157c /apex/com.android.art/lib64/libart.so (art::Runtime::Abort(char const*)+668)
#00 pc 000000000001695c /apex/com.android.art/lib64/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_3::__invoke(char const*)+76)
#00 pc 0000000000015f8c /apex/com.android.art/lib64/libbase.so (android::base::LogMessage::~LogMessage()+364)
#00 pc 00000000002857ec /apex/com.android.art/lib64/libart.so (art::JavaVMExt::AddGlobalRef(art::Thread*, art::ObjPtr<art::mirror::Object>)+1924)
#00 pc 000000000059add0 /apex/com.android.art/lib64/libart.so (art::JNI<false>::NewGlobalRef(_JNIEnv*, _jobject*)+272)
#00 pc 0000000003fc4e98 /data/app/~~9O2QPH2okcFNqG0sDHaNhA==/com.google.android.trichromelibrary_500507834-64MGBIqN6TbJ5lyoNf3XkA==/base.apk!libmonochrome_64.so
#00 pc 0000000003fc4b6c /data/app/~~9O2QPH2okcFNqG0sDHaNhA==/com.google.android.trichromelibrary_500507834-64MGBIqN6TbJ5lyoNf3XkA==/base.apk!libmonochrome_64.so
#00 pc 0000000001f47374 /data/app/~~9O2QPH2okcFNqG0sDHaNhA==/com.google.android.trichromelibrary_500507834-64MGBIqN6TbJ5lyoNf3XkA==/base.apk!libmonochrome_64.so
#00 pc 0000000003161bc4 /data/app/~~9O2QPH2okcFNqG0sDHaNhA==/com.google.android.trichromelibrary_500507834-64MGBIqN6TbJ5lyoNf3XkA==/base.apk!libmonochrome_64.so
#00 pc 0000000003161b5c /data/app/~~9O2QPH2okcFNqG0sDHaNhA==/com.google.android.trichromelibrary_500507834-64MGBIqN6TbJ5lyoNf3XkA==/base.apk!libmonochrome_64.so (Java_J_N_MLlibBXh+28)
#00 pc 000000000016b4b4 /data/app/~~NtaMTL6CoeesY96RJYZRNg==/com.google.android.webview--7V0ZOpQdqfRLs5ra87Wsg==/oat/arm64/base.odex (art_jni_trampoline+116)
#00 pc 00000000002ca880 /data/app/~~NtaMTL6CoeesY96RJYZRNg==/com.google.android.webview--7V0ZOpQdqfRLs5ra87Wsg==/oat/arm64/base.odex (org.chromium.base.JavaExceptionReporter.uncaughtException+80)
#00 pc 000000000020aec4 /apex/com.android.art/lib64/libart.so (nterp_helper+7636)
#00 pc 00000000000ec490 /apex/com.android.art/javalib/core-oj.jar (java.lang.ThreadGroup.uncaughtException+28)
#00 pc 000000000020a044 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
#00 pc 00000000000ec47c /apex/com.android.art/javalib/core-oj.jar (java.lang.ThreadGroup.uncaughtException+8)
#00 pc 000000000020ae64 /apex/com.android.art/lib64/libart.so (nterp_helper+7540)
#00 pc 00000000000ed702 /apex/com.android.art/javalib/core-oj.jar (java.lang.Thread.dispatchUncaughtException+30)
#00 pc 00000000002ca764 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#00 pc 0000000000430030 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+880)
#00 pc 00000000005ab80c /apex/com.android.art/lib64/libart.so (art::JNI<false>::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+300)
#00 pc 000000000045b87c /apex/com.android.art/lib64/libart.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+120)
#00 pc 000000000045b2e0 /apex/com.android.art/lib64/libart.so (art::Thread::HandleUncaughtExceptions(art::ScopedObjectAccessAlreadyRunnable&)+216)
#00 pc 00000000004594cc /apex/com.android.art/lib64/libart.so (art::Thread::Destroy()+456)
#00 pc 00000000004587a8 /apex/com.android.art/lib64/libart.so (art::ThreadList::Unregi ster(art::Thread*)+132)
#00 pc 00000000003da814 /apex/com.android.art/lib64/libart.so (art::Runtime::DetachCurrentThread()+128)
#00 pc 000000000058fccc /apex/com.android.art/lib64/libart.so (art::JII::DetachCurrentThread(_JavaVM*)+48)
#00 pc 00000000000c0268 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+984)
#00 pc 00000000000025a8 /system/bin/app_process64 (main+1360)
#00 pc 000000000004a068 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+100)
์ด๊ฑด ํ์ด์ด๋ฒ ์ด์ค์์ ์ ๊ณตํ๋ (์ดํ์๋ต)

๋ญ jni::NewGlobalRef(_jobject*) ์ด๋ฐ ๊ฒ ๋์ ๋ฐํ๊ธฐ๋ ํ๋๋ฐ
์ด๋์, ๋ญ์๋ค ์ฐ๋๊ฑด์ง ์ ํ ์ง์๋ ์๊ฐ๊ณ ๋ก๊ทธ๊ฐ ๋๋ฌด ๋ง์ผ๋ ๋ญ๋ก ๊ฒ์ํด๋ด์ผ ํ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ด;
๋ณดํต ์ด๋ฐ ๊ฒ ์์ผ๋ฉด ์ด๋ค ๋ถ๋ถ์ ์ง์คํด์ ๋ด์ผ ํ๋๊ฑฐ์ผ? (ํน์ ๊ฒ์์ด๋ผ๋...)
๋ด๊ฐ ์ง ์ฝ๋๋ผ๋ฉด ์ด์ผ์ด์ผ ์์ ์ ํด ๋ณด๊ฒ ๋๋ฐ ๋ฃ๋๋ณด๋ ๋ชปํ ๋ก๊ทธ๊ฐ ์์์ง๋๊น ๋นํฉ์ค๋ฝ๊ธฐ๋ง ํ๋ค
ํน์ ๋น์ทํ ์ผ ๊ฒช์ด๋ณธ ์น๊ตฌ๊ฐ ์์๊น? ใ
ใ
์ด๊ฑด ์๋?
https://stackoverflow.com/questions/63047553/apex-com-android-runtime-lib64-bionic-libc-so-abort160-abort-crash-in-andro
์ด๊ฑด ์๋นํ ์์ ์ด์์ด๊ณ ๋ก๊ทธ๋ ์ข ๋ค๋ฅด๊ธด ํ๋ฐ... ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์ ์ผ ์ ์๋ค๋ ๊ฑด ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ ค๋? ์ ์ง์ง ๋ญ ์๋์ผ ๋๋๊ฑฐ์ง ใ ใ ์ผ๋จ ์ด๊ฒ์ ๊ฒ ์ ๋ฐ์ดํธ ํด ๋ด์ผ ํ๋ ค๋?
https://3-stack.tistory.com/10
SIGABRT๋๊น
JVM ๊ด๋ จ ์๋ฌ๋ผ๋๊ฑฐ ๊ฐ๊ณ malloc ์๋ชป๋๊ฑฐ๋ ์์ธ ์ฒ๋ฆฌ ํ์๋ ๋จ๋๊ฑฐ๋ผ๋๋ฐ
malloc์ด๋ฉด ์ ๋ํฐ ๊ตฌํ ์์ฒด(libunity.so)๊ฐ ์๋ชป๋๊ฑฐ๋๊น ํ ์์๋๊ฒ ์์๊ฑฐ๊ณ ์ด๋๊ฐ์์ ์์ธ๋ฐ์ ํ๋ค๊ณ ๋ณด๋๊ฒ ๋์๋ฏ
libc.so (์ด๊ฑด ์์ฃผ ํ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ณด๋ฉด ๋จ jvm์์ฒด๊ฐ ์ฌ์ฉํ๋) < libunity.so (์ด๊ฑด ์ ๋ํฐ์์ ๋ง๋ ํ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ๋ณด๋ฉด๋จ)
์๋๋ก ๊ฐ์๋ก ํ์ด๋ ๋ฒจ์ธ๊ฑฐ ๊ฐ์ผ๋๊น .so๊ฐ์๊ฒ ์๋ ์๋ฌ๋ก๊ทธ๊ฐ ์๋๋ฐ๊น์ง ์๋๋ก ๋ด๋ ค์ ๊ฑฐ๊ธฐ์ ์๋ฌ๋ฅผ ์ฐพ๋๊ฒ ๋์๊ฑฐ์
๋งจ ์๋์ ๋ญ๋ผ๊ณ ๋ธ?
์ด-์ฌํ ์ฐพ์ ๋ด๋ ค๊ฐ์ 120๋ฒ์งธ ์ฐ๋ ๋๋ก ๊ฐ๋ ๋์ค๋๊ฒ ์ด๊ฑฐ์ผ, libunity.so // UnityClassic::Baselib_SystemFutex_Wait(int*, int, unsigned int) .so๊ฐ ์๋ ์๋ฌ ๋ก๊ทธ๋ ์๋ณด์ด๋๊ฑฐ ๊ฐ์
https://github.com/googlevr/cardboard/issues/280#issuecomment-882101790
ํ์ด์ด๋ฒ ์ด์ค
์์กด์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์ ์ผ์ ์๋ค๊ณ ๋์ค๋๋ฐ ( ๋ฌผ๋ก ์ด ๋งํฌ์๋ VR ์ฐ๋ค๊ฐ ์ถฉ๋๋ฌ๋ค๊ณ ๋์์ ์ฝ๊ฐ ๋ค๋ฅด๊ธด ํ๋ฐ)
ํ์ด์ด๋ฒ ์ด์ค ํ์ด์ด์คํ ์ด ํน์์?
์ ์ฌ๋์ ์ ๋ํฐ์ ํ์ด์ด๋ฒ ์ด์ค ํ๋ฌ๊ทธ์ธ ๊น๊ณ ์๋ฌ๊ฐ ๋ฌ๋ค๊ณ ํจ
๋ง์ฝ ํ์ด์ด๋ฒ ์ด์ค ํ๋ฌ๊ทธ์ธ ์ฐ๋ฉด ํด๋น github ์ด์์์ ์ฐพ์๋ณด๊ณ ๋ฒ์ ๋ฐ๊ฟ์ ๊น์๋ณด๋๊ฒ ๋์ ๊ฑฐ ๊ฐ์๋ฐ
ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ์ฐ๊ณ ์๊ธด ํ๋ฐ ์ ๋๋ฆฌํฑ์ค๋ ํฌ๋์๋ฆฌํฑ์ค๋ง ์ฐ๊ณ ํ์ด์ด์คํ ์ด๋ ์ถ๊ฐํ์ง ์์์ด. ์ผ๋จ ํ์ด์ด๋ฒ ์ด์ค๋ ํ๋ฒ ์ ๋ฐ์ดํธ ํด๋ณด๋ ค๊ตฌ. ใ ์๊ฒฌ ๊ณ ๋ง์!!
์ ์๋ฌ๊ฐ ์์ฃผ๋๋๊ฒ ์๋๋ฉด ์ค ๊ธฐ๊ธฐ๊ฐ ์๋๋ผ ์๋ฎฌ๋ ์ดํฐ ๊ฐ์๊ฑฐ ๋ฌธ์ ์ผ์๋ ์์ ๋ธ๋ฃจ์คํ์ด๋ ๊ทธ๋ฐ ์ข ๋ฅ๋ก ๊ฒ์ํ๋ ์ฌ๋๋ค์ด ์ฌ์ฉํ๋ ์๋๋ก์ด๋ ์๋ฎฌ๋ ์ดํฐ๊ฐ ๊ตฌํ์ด ์ข ๋ธ๋ฆฌ๊ฒ ๋์๋ค๊ฑฐ๋ ํ๋ฉด ์๋ฌ๊ฐ ๋ ์๊ฐ ์์ ๋ธ๋ฃจ์คํ์ ๊ธฐ๊ธฐ์ ๋ณด๋ฅผ ๊ทธ๋ฅ ์ค์ ์ฐฝ์์ ์ ๋ ฅ์ ํ ์๊ฐ ์๋๋ฐ (์ผ์ฑํฐ์ธ์ฒ) ๊ทธ๊ฑธ ์ ์๋ฌ๋ก๊ทธ ํ๋๋ฐ์ ํ๋ณ ๊ฐ๋ฅํ์ง ๋ชจ๋ฅด๊ฒ ๋ค
์์ง ์ถ์๋ฅผ ๋ชปํด์ ๊ฒช์ด๋ณธ ๋ฌธ์ ๊ฐ ์๋๋ค๋ณด๋ ๊ทธ๋ฅ ์ฝํ๋๋๋ก ์ ์ด๋ณด๋ฉด.. ๊ฒฐ๋ก ๋ถํฐ ์ ์ผ๋ฉด ์น๋ทฐ์ ๊ด๋ จ๋์ชฝ์์ ๋ญ๊ฐ ๋ฒ๊ทธ๊ฐ ์๋๊ฑฐ ๊ฐ์
1. ART ์ฐ๋ ๋ ์ฒ๋ฆฌ ๋๋๋ ์์ ์ ์ฒ๋ฆฌ๋์ง ์์ ์์ธ๋ฅผ ์บ์นํจ - ScopedObjectAccessAlreadyRunnable 1.1. ๊ทผ๋ฐ ScopedObjectAccessAlreadyRunnable๋ฅผ ์ฐพ์๋ณด๋๊น ์ ๊ฑด ์์ธ ๊ฐ์ฒด๊ฐ ์๋๋ผ ์ค์ฝํ ํด์ ๋ ๋ ์ฐธ์กฐ์นด์ดํธ๊ฐ์๊ฑฐ ๊ผฌ์ด์ง ์๊ฒ ์ฒ๋ฆฌํด ์ฃผ๋ ํด๋์ค๋ผ์ ์ฝ์คํ์ด ์ดํด๊ฐ ์๋จ 1.2. ์ฐ๋ ๋ ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋๊ฐ์์ ์ฐ๋ ๋ ์ข ๋ฃํ๋ ๋ถ๋ถ๊ณผ ๊ด๋ จํด์ ๋ฒ๊ทธ๊ฐ ์๋๊ฑธ๋ก ๋ณด์
2. org.chromium.base.JavaExceptionReporter.uncaughtException ๋ฅผ ๋ณด๋ฉด, ํฌ๋ก๋ฏธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ชฝ์ ์์ธ๋ณด๊ณ ๊ธฐ๊ฐ ์ฒ๋ฆฌ๋์ง ์์ ์์ธ๋ฅผ ์บ์นํ๋ค๊ณ ์๋ฆผ 2.1. ์ต์ ์ ๋ฆฌํฌํฐ๊ฐ ์ฝ๋์์์๋ง ์๋ํ๋ ๊ฐ๋ ์ ์๋ฏธ์ธ์ง, http๊ฐ์๊ฑธ๋ก ์ด์ฃผ๋ ๊ฐ๋ ์ธ์ง๋ ๋ชจ๋ฅด๊ณ์ 3. com.google.android.trichromelibrary -> ์๋๋ก์ด๋ ์น๋ทฐ์ชฝ์์ tri chrome library๋ผ๋๊ฑธ ๋์ด๋ค ์ฐ๋๊ฒ ๊ฐ์ 4. libmonochrome_64.so (Java_J_N_MLlibBXh+28) -> ์ฌ๊ธฐ์ ์ฐ๋ ๋ ๋ฒ๊ทธ ๊ด๋ จ๋ ์ ๋ณด๊ฐ ๋ง์ด ์์๊ฒ ๊ฐ์๋ฐ ์ด์ชฝ ์ฌ๋ณผ์ ๋ฑ๋กํด์ผ ํ ๊ฑฐ ๊ฐ์
5. ๊ทธ ์ดํ NewGlobalRef()์ด๋ฐ๊ฑด ์ค์ํด ๋ณด์ด์ง ์์.. ๋ญ๊ฐ ๋ก๊ทธ๋ฉ์ธ์ง ์ฐ๊ณ Abort(Exit) ํจ์ ํธ์ถํ๋ ์ข ๋ฃ์ฒ๋ฆฌ ์ฝ๋๋ก ๋ณด์ฌ์ง ๊ฒ์์ด ๊ฐ์ง๊ณ ์ข๋ ์ฐพ์๋ณผ๊ฒ
์์ฐธ.. ๊ฒ์์์์ ์น๋ทฐ ์ฐ๋๊ฑด ๊ด๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๊ฐ์ฅ ์ ๋ ฅํ ๊ฑฐ ๊ฐ์...
6. art_jni_trampoline+116 ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋ญ๊ฐ ์ถ์๋ฐ 6.1. JNI (JAVA<->NativeC++๊ฐ ํจ์ํธ์ถ) ๋ด๋ถ์ชฝ์์ trampoline์ด๋ผ๋ ๋จ์ด๋ฅผ ์ฐ๋๋ฐ ์ด๊ฑฐ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์๋ณด์ด๊ณ , ์ด๊ฑฐ๋ฉด ํฌ๊ฒ ์ค์ํ ๋ฌธ๊ตฌ๋ ์๋๊ฑฐ ๊ฐ์ 6.2. ์๋๋ก์ด๋12์์ '์๋ฆผ ํธ๋จํ๋ฆฐ ์ ํ ์ฌํญ'์ด๋ผ๋๊ฒ ์๊ฒผ๋๋ด ํฌ๊ฒ ์๊ด์๋๊ฒ ๊ฐ๊ธด ํ๋ฐ ์ด๋ถ๋ถ์ด ์์ธ์ด๋ผ๋ฉด ์น๋ทฐ? ์๋์ฒ๋ฆฌ? ๊ด๋ จ๋ ๋ฒ๊ทธ๊ฐ ์๋๋ก์ด๋12 ์ด์์์๋ง ๋ ๊ฐ๋ฅ์ฑ์ด ์์
์ด๊ฑฐ์ผ ๊ฐ๋ฅ์ฑ๋ ๊ฝค ์์ด ๋ณด์ด๋๋ฐ ์ด ์ด์ ๊ตฌ๊ธ๋ง์ด ์ ์๋๋ค ์ ํด๊ฒฐ๋๊ธธ ๋ฐ๋๊ฒ!
https://www.ajunews.com/view/20210323144549745
https://coolenjoy.net/bbs/38/2706220
https://android.stackexchange.com/questions/234830/com-google-android-trichromelibrary-causes-many-android-apps-to-crash
ํ๋ฒ ํ์ธํด๋ณผ๊ฒ! ์์ธํ ์๊ฒฌ ๊ณ ๋ง์! ์ ๋๋ชน ๋ฒ์ ์ ์ ํ๋ฒ ์์๋ด์ผ ํ๋ ค๋...