我试图解决崩溃问题:
1:
#00 pc 000000000006a548 /system/lib64/libc.so (tgkill+8)
#01 pc 0000000000067cd8 /system/lib64/libc.so (pthread_kill+68)
#02 pc 0000000000024b78 /system/lib64/libc.so (raise+28)
#03 pc 000000000001f318 /system/lib64/libc.so (abort+60)
#04 pc 000000000043471c /system/lib64/libart.so (_ZN3art7Runtime5AbortEv+324)
#05 pc 0000000000137224 /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+3136)
#06 pc 0000000000131cc8 /system/lib64/libart.so (_ZN3art7BarrierD2Ev+296)
#07 pc 0000000000469364 /system/lib64/libart.so (_ZN3art10ThreadList4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+212)
#08 pc 0000000000434804 /system/lib64/libart.so (_ZN3art7Runtime5AbortEv+556)
#09 pc 0000000000137224 /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+3136)
#10 pc 000000000027165c /system/lib64/libart.so (_ZN3art22IndirectReferenceTable3AddEjPNS_6mirror6ObjectE+372)
#11 pc 00000000022ef904 /system/framework/arm64/boot.oat
2:
#00 pc 000000000006a548 /system/lib64/libc.so (tgkill+8)
#01 pc 0000000000067cd8 /system/lib64/libc.so (pthread_kill+68)
#02 pc 0000000000024b78 /system/lib64/libc.so (raise+28)
#03 pc 000000000001f318 /system/lib64/libc.so (abort+60)
#04 pc 000000000043471c /system/lib64/libart.so (_ZN3art7Runtime5AbortEv+324)
#05 pc 0000000000137224 /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+3136)
#06 pc 0000000000131cc8 /system/lib64/libart.so (_ZN3art7BarrierD2Ev+296)
#07 pc 0000000000469364 /system/lib64/libart.so (_ZN3art10ThreadList4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+212)
#08 pc 0000000000434804 /system/lib64/libart.so (_ZN3art7Runtime5AbortEv+556)
#09 pc 0000000000137224 /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+3136)
#10 pc 000000000027165c /system/lib64/libart.so (_ZN3art22IndirectReferenceTable3AddEjPNS_6mirror6ObjectE+372)
#11 pc 000000000053e224 /system/lib64/libart.so (artQuickProxyInvokeHandler+1044)
#12 pc 0000000000127b74 /system/lib64/libart.so (art_quick_proxy_invoke_handler+84)
#13 pc 0000000000fda44c /data/app/package_name-1/oat/arm64/base.odex
3:
#00 pc 000000000006a548 /system/lib64/libc.so (tgkill+8)
#01 pc 0000000000067cd8 /system/lib64/libc.so (pthread_kill+68)
#02 pc 0000000000024b78 /system/lib64/libc.so (raise+28)
#03 pc 000000000001f318 /system/lib64/libc.so (abort+60)
#04 pc 000000000043471c /system/lib64/libart.so (_ZN3art7Runtime5AbortEv+324)
#05 pc 0000000000137224 /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+3136)
#06 pc 0000000000131cc8 /system/lib64/libart.so (_ZN3art7BarrierD2Ev+296)
#07 pc 0000000000469364 /system/lib64/libart.so (_ZN3art10ThreadList4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+212)
#08 pc 0000000000434804 /system/lib64/libart.so (_ZN3art7Runtime5AbortEv+556)
#09 pc 0000000000137224 /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+3136)
#10 pc 000000000027165c /system/lib64/libart.so (_ZN3art22IndirectReferenceTable3AddEjPNS_6mirror6ObjectE+372)
#11 pc 000000000036f1e8 /system/lib64/libart.so (_ZN3art3JNI12NewByteArrayEP7_JNIEnvi+416)
我查看了IndirectReferenceTable的源代码( https://android.googlesource.com/platform/art/+/kitkat-dev/runtime/indirect_reference_table.cc) 而且由于表溢出似乎崩溃了。
据我所知,我正确删除了所有本地引用。
问题是否可能与本地参考无关?任何假设?
答案 0 :(得分:1)
当我开始使用pop / push本地框架JNI API时,该应用程序停止报告崩溃报告。
所以我认为它以某种方式泄露了本地参考文献,但我还没有理解。
在我的设备上,应用程序没有崩溃,所以这一点可能与JNI的所有实现无关。