2016-02-11 60 views
3

我們最近推出了我們的應用程序,並從以前的版本升級其實..JNI ERROR(APP錯誤):本地參照表溢出(最大值= 512),即使出本機代碼

,突然,我們開始看到這個錯誤大量的設備..我們不知道發生了什麼,日誌非常模糊..

在這裏附加日誌。但任何幫助或一些線索可能會幫助我們調試問題。


生成指紋: '的Verizon/zeroltevzw/zeroltevzw:5.1.1/LMY47X/G925VVRU4BOK7:用戶/釋放密鑰'

修訂:'10'

ABI: 'arm64'

PID:31610,TID:31610,名稱:st.mediamanager >>> < < <

信號6(SIGABRT),碼-6(SI_TKILL),故障地址--------

中止消息: 'SART /運行/ indirect_reference_table.cc:98] JNI ERROR(錯誤程序):本地參照表溢出(最大值= 512)'

x0 0000000000000000 x1 0000000000007b7a x2 0000000000000006 x3 0000007fa219fe30 

x4 0000007fa219fe30 x5 0000000000000005 x6 0000000000000001 x7 0000000000000020 

x8 0000000000000083 x9 00000000000000ca x10 0000007fa1f2a000 x11 0000000000000001 

x12 0000000000000001 x13 0000007fa1f2a000 x14 c4aa4c0daad90e20 x15 0000007f92002a31 

x16 0000007fa1f2a610 x17 0000007fa1eca174 x18 0000000000000000 x19 0000007fa219fe30 

x20 0000007fa21a00e8 x21 0000007fa1f30000 x22 0000000000000001 x23 0000000000000006 

x24 0000007fee90e2d0 x25 0000007f9e0a6000 x26 0000007fee90e2c8 x27 0000007f9dffd520 

x28 0000007f9e0a6000 x29 0000007fee90e150 x30 0000007fa1e8c264 

sp 0000007fee90e150 pc 0000007fa1eca17c pstate 0000000060000000 

回溯:

#00 pc 000000000005e17c /system/lib64/libc.so (tgkill+8) 

#01 pc 0000000000020260 /system/lib64/libc.so (pthread_kill+160) 

#02 pc 0000000000021794 /system/lib64/libc.so (raise+28) 

#03 pc 000000000001b17c /system/lib64/libc.so (abort+60) 

#04 pc 0000000000310534 /system/lib64/libart.so (art::Runtime::Abort()+300) 

#05 pc 00000000000d5378 /system/lib64/libart.so (art::LogMessage::~LogMessage()+2684) 

#06 pc 00000000001e7ff0 /system/lib64/libart.so (art::IndirectReferenceTable::Add(unsigned int, art::mirror::Object*)+416) 

#07 pc 00000000002e28cc /system/lib64/libart.so (art::VMClassLoader_findLoadedClass(_JNIEnv*, _jclass*, _jobject*, _jstring*)+248) 

#08 pc 000000000002a5dc /system/framework/arm64/boot.oat 

生成指紋: '的Verizon/trltevzw/trltevzw:5.1.1/LMY47X/N910VVRU2BPA1:用戶/釋放密鑰' 修訂: '12' ABI: 'ARM' pid:481,tid:481,name:st.mediamanager >>> < < < < signal 6(SIGABRT),code -6(SI_TKILL),fault addr -------- Abort message:'sart /runtime/indirect_reference_table.cc:109] JNI ERROR(app bug):本地參考表溢出(max = 512)' r0 00000000 r1 000001e1 r2 00000006 r3 00000000 r4 b6fc3e38 r5 00000006 r6 00000016 r7 0000010c r8 00000000 r9 b486f550 sl b4827800 FP 00000475 IP 000001e1 SP bebbaaf8 LR b6e22715 PC b6e46854 CPSR 60070010

回溯: #00 PC 00038854 /system/lib/libc.so(tgkill + 12) #01 PC 00014711 /系統/ LIB/libc的。所以(p (加上+ 10) #03 pc 00011bc9 /system/lib/libc.so(__libc_android_abort + 36) #04 pc 0001003c/system/lib/libc.so(abort + 4) #05 pc 00230cd1 /system/lib/libart.so(art :: Runtime :: Abort()+ 160) #06 pc 000ac58b /system/lib/libart.so(art: :LogMessage ::〜LogMessage()+ 1322) #07 pc 0016996d /system/lib/libart.so(art :: IndirectReferenceTable :: Add(unsigned int,art​​ :: mirror :: Object *)+ 244) # 08 PC 00214f43 /system/lib/libart.so(第:: VMClassLoader_findLoadedClass(_JNIEnv *,_jclass *,_jobject *,_jstring *)+ 162) #09 PC 0001bd8d /system/framework/arm/boot.oat


構建指紋:'Verizon/zenltevzw/zenltevzw:5.1。1/LMY47X/G928VVRU2AOJ3:用戶/釋放密鑰 修訂: '9' ABI: 'arm64' PID:18658,TID:18658,名稱:st.mediamanager >>> < < < 信號6(SIGABRT) ,代碼-6(SI_TKILL),故障地址-------- 中止消息:'sart/runtime/indirect_reference_table.cc:109] JNI ERROR(app bug):本地參考表溢出(max = 512)' X0 X1 0000000000000000 X2 00000000000048e2 X3 0000000000000006 0000007fa3887e30 X4 X5 0000007fa3887e30 5233 0000000000000005 0000000000000001 0000000000000020 X7 X8 X9 0000000000000083 X10 000000000000005e X11 0000007fa3613000 0000000000000001 X12 X13 0000000000000001 X14 0000007fa3613000 X15 24d3f27831b256ef 0000000000000001 X16 0000007fa3613610 X17 0000007fa35b30d4 X18 0000000000000000 X19 0000007fa3887e30 X20 0000007fa38880e8 X21 0000007fa3619000 X22 0000000000000001 X23 0000000000000006 X24 0000007fc7e2cbc0 X25 0000007f9f820d40 X26 0000000000000001 X27 0000007f8c101b60 X28 0000000000000000 X29 0000007fc7e2ca40 X30 0000007fa3575224 SP 0000007fc7e2ca40 PC 0000007fa35b30dc pstate 00000000.6億

回溯:

#00 pc 000000000005e0dc /system/lib64/libc.so (tgkill+8) 
#01 pc 0000000000020220 /system/lib64/libc.so (pthread_kill+160) 
#02 pc 0000000000021754 /system/lib64/libc.so (raise+28) 
#03 pc 000000000001b13c /system/lib64/libc.so (abort+60) 
#04 pc 00000000002ffca4 /system/lib64/libart.so (art::Runtime::Abort()+300) 
#05 pc 00000000000d15b8 /system/lib64/libart.so (art::LogMessage::~LogMessage()+2684) 
#06 pc 00000000002ad730 /system/lib64/libart.so (art::Monitor::VisitLocks(art::StackVisitor*, void (*)(art::mirror::Object*, void*), void*, bool)+952 

#07 pc 0000000000314978 /system/lib64/libart.so (art::StackDumpVisitor::VisitFrame()+568) 
#08 pc 000000000030ba08 /system/lib64/libart.so (art::StackVisitor::WalkStack(bool)+308) 
#09 pc 0000000000313754 /system/lib64/libart.so (art::Thread::DumpJavaStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+268) 
#10 pc 0000000000313968 /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+272) 
#11 pc 000000000031e8dc /system/lib64/libart.so (art::ThreadList::DumpLocked(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+100) 
#12 pc 00000000002ffd34 /system/lib64/libart.so (art::Runtime::Abort()+444) 
#13 pc 00000000000d15b8 /system/lib64/libart.so (art::LogMessage::~LogMessage()+2684) 
#14 pc 00000000001d7468 /system/lib64/libart.so (art::IndirectReferenceTable::Add(unsigned int, art::mirror::Object*)+416) 
#15 pc 00000000002d2018 /system/lib64/libart.so (art::VMClassLoader_findLoadedClass(_JNIEnv*, _jclass*, _jobject*, _jstring*)+248) 
#16 pc 000000000002a5dc /system/framework/arm64/boot.oat 

構建指尖RINT: '的Verizon/kltevzw/kltevzw:5.0/LRX21T/G900VVRU2BOK3:用戶/釋放密鑰'

修訂: '14'

ABI: 'ARM'

PID:32148,TID:32148 ,名稱:st.mediamanager >>> < < <

信號6(SIGABRT),碼-6(SI_TKILL),故障地址--------

中止消息:「藝術/運行時/indirect_reference_table.cc:113] JNI錯誤(應用程序錯誤):本地參考選項卡樂溢出(最大值= 512)」

r0 00000000 r1 00007d94 r2 00000006 r3 00000000 

r4 b6f92114 r5 00000006 r6 00000016 r7 0000010c 

r8 00000000 r9 b4e4f520 sl b4e07800 fp 000004ba 

ip 00007d94 sp be8a3b38 lr b6f1bfd1 pc b6f40268 cpsr 60070010 

回溯:

#00 pc 00038268 /system/lib/libc.so (tgkill+12) 

#01 pc 00013fcd /system/lib/libc.so (pthread_kill+52) 

#02 pc 00014beb /system/lib/libc.so (raise+10) 

#03 pc 00011531 /system/lib/libc.so (__libc_android_abort+36) 

#04 pc 0000fcbc /system/lib/libc.so (abort+4) 

#05 pc 0021d5d9 /system/lib/libart.so (art::Runtime::Abort()+160) 

#06 pc 000a834b /system/lib/libart.so (art::LogMessage::~LogMessage()+1322) 

#07 pc 001574b7 /system/lib/libart.so (art::IndirectReferenceTable::Add(unsigned int, art::mirror::Object*)+346) 

#08 pc 002010d5 /system/lib/libart.so (art::VMClassLoader_findLoadedClass(_JNIEnv*, _jclass*, _jobject*, _jstring*)+136) 


#09 pc 0001b151 /system/framework/arm/boot.oat 

回答

0

我沒有一個完整的答案,但它太長了評論,所以我會後爲一體。

所以這個錯誤正是你期望的 - 它調用了一個本地代碼,導致你有超過512個對象與本機共享。通常這是因爲某處泄漏而發生的。而且您不需要直接使用本機代碼來執行此操作 - 該框架在幕後製作了大量本機調用。

從堆棧跟蹤 - 我看到它的libart.so,而不是libdalvik.so。所以這種情況發生在從Dalvik虛擬機切換到Art的新設備上。堆棧跟蹤看起來像是試圖加載一個類併爲某些JNI代碼添加引用,但我無法確定。我知道我們已經看到類加載錯誤在藝術工作,不存在達爾維克。

如果您有任何本機代碼,我會確保您正確釋放所有對java內存和類的引用。如果你不 - 這可能是Art中的一個錯誤,瞭解應用程序在崩潰時正在做什麼會很有用。崩潰是否一致?如果是這樣,你在做什麼?

+0

我們剛剛開始在Google Play崩潰中看到它。我們公司中沒有人能夠複製它,或者在我們的質量保證週期中沒有人發現這個錯誤。我們只是在碰撞報告中看到很多這些。可能是崩潰是一致的,但在這一點上,我們沒有比這些日誌更多的細節。 –

相關問題