2017-06-20 3 views
0

Während der Lebensdauer der Anwendung erhalten wir die Nachricht "App" wurde gestoppt. Alle Methoden haben derzeit die try-and-catch-Klausel, jedoch können wir diese unbehandelte Ausnahme nicht abfangen. Wir haben alles versucht und konnten den Schuldigen dafür nicht finden. Wir haben es geschafft, das Android-Protokoll der Anwendung zu bekommen, also könnte jemand bitte eine Idee geben, was das Problem sein könnte?Xamarin Android 'App' wurde gestoppt (Nougat)

Das Protokoll:

06-20 09:23:42.711 12647 12647 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 12647 (mSales.mSales) 
06-20 09:23:42.794 12878 12878 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
06-20 09:23:42.794 12878 12878 F DEBUG : Build fingerprint: 'samsung/gts28ltexx/gts28lte:7.0/NRD90M/T715XXU2CQCL:user/release-keys' 
06-20 09:23:42.794 12878 12878 F DEBUG : Revision: '9' 
06-20 09:23:42.794 12878 12878 F DEBUG : ABI: 'arm' 
06-20 09:23:42.794 12878 12878 F DEBUG : pid: 12647, tid: 12647, name: mSales.mSales >>> mSales.mSales <<< 
06-20 09:23:42.795 12878 12878 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 
06-20 09:23:42.799 12878 12878 F DEBUG : Abort message: 'art/runtime/indirect_reference_table.cc:128] JNI ERROR (app bug): weak global reference table overflow (max=51200)' 
06-20 09:23:42.800 12878 12878 F DEBUG :  r0 00000000 r1 00003167 r2 00000006 r3 00000008 
06-20 09:23:42.800 12878 12878 F DEBUG :  r4 a778558c r5 00000006 r6 a7785534 r7 0000010c 
06-20 09:23:42.800 12878 12878 F DEBUG :  r8 a447d464 r9 00000000 sl bed88338 fp a4469ed4 
06-20 09:23:42.800 12878 12878 F DEBUG :  ip 00000002 sp bed88268 lr a5f8b4b7 pc a5f8dd20 cpsr 600f0010 
06-20 09:23:42.819 12878 12878 F DEBUG : 
06-20 09:23:42.819 12878 12878 F DEBUG : backtrace: 
06-20 09:23:42.819 12878 12878 F DEBUG :  #00 pc 0004ad20 /system/lib/libc.so (tgkill+12) 
06-20 09:23:42.819 12878 12878 F DEBUG :  #01 pc 000484b3 /system/lib/libc.so (pthread_kill+34) 
06-20 09:23:42.819 12878 12878 F DEBUG :  #02 pc 0001dd89 /system/lib/libc.so (raise+10) 
06-20 09:23:42.819 12878 12878 F DEBUG :  #03 pc 00019511 /system/lib/libc.so (__libc_android_abort+34) 
06-20 09:23:42.819 12878 12878 F DEBUG :  #04 pc 00017150 /system/lib/libc.so (abort+4) 
06-20 09:23:42.819 12878 12878 F DEBUG :  #05 pc 0031b3bd /system/lib/libart.so (_ZN3art7Runtime5AbortEv+252) 
06-20 09:23:42.819 12878 12878 F DEBUG :  #06 pc 000b4ccb /system/lib/libart.so (_ZN3art10LogMessageD2Ev+866) 
06-20 09:23:42.819 12878 12878 F DEBUG :  #07 pc 001bd093 /system/lib/libart.so (_ZN3art22IndirectReferenceTable3AddEjPNS_6mirror6ObjectE+194) 
06-20 09:23:42.819 12878 12878 F DEBUG :  #08 pc 0023a72f /system/lib/libart.so (_ZN3art9JavaVMExt16AddWeakGlobalRefEPNS_6ThreadEPNS_6mirror6ObjectE+46) 
06-20 09:23:42.819 12878 12878 F DEBUG :  #09 pc 0027ff63 /system/lib/libart.so (_ZN3art3JNI16NewWeakGlobalRefEP7_JNIEnvP8_jobject+418) 
06-20 09:23:42.819 12878 12878 F DEBUG :  #10 pc 0000b5cf /data/app/mSales.mSales-1/lib/arm/libmonodroid.so 
06-20 09:23:42.819 12878 12878 F DEBUG :  #11 pc 00009e71 /data/app/mSales.mSales-1/lib/arm/libmonodroid.so 
06-20 09:23:42.819 12878 12878 F DEBUG :  #12 pc 002326c8 /data/app/mSales.mSales-1/lib/arm/libmonosgen-2.0.so 
06-20 09:38:19.287 15440 15440 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 15440 (mSales.mSales) 
06-20 09:38:19.369 15630 15630 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
06-20 09:38:19.369 15630 15630 F DEBUG : Build fingerprint: 'samsung/gts28ltexx/gts28lte:7.0/NRD90M/T715XXU2CQCL:user/release-keys' 
06-20 09:38:19.369 15630 15630 F DEBUG : Revision: '9' 
06-20 09:38:19.369 15630 15630 F DEBUG : ABI: 'arm' 
06-20 09:38:19.370 15630 15630 F DEBUG : pid: 15440, tid: 15440, name: mSales.mSales >>> mSales.mSales <<< 
06-20 09:38:19.370 15630 15630 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 
06-20 09:38:19.375 15630 15630 F DEBUG : Abort message: 'art/runtime/indirect_reference_table.cc:128] JNI ERROR (app bug): weak global reference table overflow (max=51200)' 
06-20 09:38:19.375 15630 15630 F DEBUG :  r0 00000000 r1 00003c50 r2 00000006 r3 00000008 
06-20 09:38:19.375 15630 15630 F DEBUG :  r4 a778558c r5 00000006 r6 a7785534 r7 0000010c 
06-20 09:38:19.375 15630 15630 F DEBUG :  r8 a447d464 r9 00000000 sl bed88c00 fp a4469ed4 
06-20 09:38:19.375 15630 15630 F DEBUG :  ip 00000002 sp bed88b30 lr a5f8b4b7 pc a5f8dd20 cpsr 600f0010 
06-20 09:38:19.394 15630 15630 F DEBUG : 
06-20 09:38:19.394 15630 15630 F DEBUG : backtrace: 
06-20 09:38:19.394 15630 15630 F DEBUG :  #00 pc 0004ad20 /system/lib/libc.so (tgkill+12) 
06-20 09:38:19.394 15630 15630 F DEBUG :  #01 pc 000484b3 /system/lib/libc.so (pthread_kill+34) 
06-20 09:38:19.394 15630 15630 F DEBUG :  #02 pc 0001dd89 /system/lib/libc.so (raise+10) 
06-20 09:38:19.394 15630 15630 F DEBUG :  #03 pc 00019511 /system/lib/libc.so (__libc_android_abort+34) 
06-20 09:38:19.395 15630 15630 F DEBUG :  #04 pc 00017150 /system/lib/libc.so (abort+4) 
06-20 09:38:19.395 15630 15630 F DEBUG :  #05 pc 0031b3bd /system/lib/libart.so (_ZN3art7Runtime5AbortEv+252) 
06-20 09:38:19.395 15630 15630 F DEBUG :  #06 pc 000b4ccb /system/lib/libart.so (_ZN3art10LogMessageD2Ev+866) 
06-20 09:38:19.395 15630 15630 F DEBUG :  #07 pc 001bd093 /system/lib/libart.so (_ZN3art22IndirectReferenceTable3AddEjPNS_6mirror6ObjectE+194) 
06-20 09:38:19.395 15630 15630 F DEBUG :  #08 pc 0023a72f /system/lib/libart.so (_ZN3art9JavaVMExt16AddWeakGlobalRefEPNS_6ThreadEPNS_6mirror6ObjectE+46) 
06-20 09:38:19.395 15630 15630 F DEBUG :  #09 pc 0027ff63 /system/lib/libart.so (_ZN3art3JNI16NewWeakGlobalRefEP7_JNIEnvP8_jobject+418) 
06-20 09:38:19.395 15630 15630 F DEBUG :  #10 pc 0000b5cf /data/app/mSales.mSales-1/lib/arm/libmonodroid.so 
06-20 09:38:19.395 15630 15630 F DEBUG :  #11 pc 00009e71 /data/app/mSales.mSales-1/lib/arm/libmonodroid.so 
06-20 09:38:19.395 15630 15630 F DEBUG :  #12 pc 002326c8 /data/app/mSales.mSales-1/lib/arm/libmonosgen-2.0.so 
06-20 09:58:55.045 17536 17536 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 17536 (mSales.mSales) 
06-20 09:58:55.120 17740 17740 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
06-20 09:58:55.120 17740 17740 F DEBUG : Build fingerprint: 'samsung/gts28ltexx/gts28lte:7.0/NRD90M/T715XXU2CQCL:user/release-keys' 
06-20 09:58:55.120 17740 17740 F DEBUG : Revision: '9' 
06-20 09:58:55.120 17740 17740 F DEBUG : ABI: 'arm' 
06-20 09:58:55.120 17740 17740 F DEBUG : pid: 17536, tid: 17536, name: mSales.mSales >>> mSales.mSales <<< 
06-20 09:58:55.120 17740 17740 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 
06-20 09:58:55.124 17740 17740 F DEBUG : Abort message: 'art/runtime/indirect_reference_table.cc:128] JNI ERROR (app bug): weak global reference table overflow (max=51200)' 
06-20 09:58:55.124 17740 17740 F DEBUG :  r0 00000000 r1 00004480 r2 00000006 r3 00000008 
06-20 09:58:55.124 17740 17740 F DEBUG :  r4 a778558c r5 00000006 r6 a7785534 r7 0000010c 
06-20 09:58:55.124 17740 17740 F DEBUG :  r8 a447d464 r9 00000000 sl bed89018 fp a4469ed4 
06-20 09:58:55.125 17740 17740 F DEBUG :  ip 00000002 sp bed88f48 lr a5f8b4b7 pc a5f8dd20 cpsr 600f0010 
06-20 09:58:55.143 17740 17740 F DEBUG : 
06-20 09:58:55.143 17740 17740 F DEBUG : backtrace: 
06-20 09:58:55.143 17740 17740 F DEBUG :  #00 pc 0004ad20 /system/lib/libc.so (tgkill+12) 
06-20 09:58:55.143 17740 17740 F DEBUG :  #01 pc 000484b3 /system/lib/libc.so (pthread_kill+34) 
06-20 09:58:55.143 17740 17740 F DEBUG :  #02 pc 0001dd89 /system/lib/libc.so (raise+10) 
06-20 09:58:55.143 17740 17740 F DEBUG :  #03 pc 00019511 /system/lib/libc.so (__libc_android_abort+34) 
06-20 09:58:55.143 17740 17740 F DEBUG :  #04 pc 00017150 /system/lib/libc.so (abort+4) 
06-20 09:58:55.143 17740 17740 F DEBUG :  #05 pc 0031b3bd /system/lib/libart.so (_ZN3art7Runtime5AbortEv+252) 
06-20 09:58:55.143 17740 17740 F DEBUG :  #06 pc 000b4ccb /system/lib/libart.so (_ZN3art10LogMessageD2Ev+866) 
06-20 09:58:55.143 17740 17740 F DEBUG :  #07 pc 001bd093 /system/lib/libart.so (_ZN3art22IndirectReferenceTable3AddEjPNS_6mirror6ObjectE+194) 
06-20 09:58:55.143 17740 17740 F DEBUG :  #08 pc 0023a72f /system/lib/libart.so (_ZN3art9JavaVMExt16AddWeakGlobalRefEPNS_6ThreadEPNS_6mirror6ObjectE+46) 
06-20 09:58:55.143 17740 17740 F DEBUG :  #09 pc 0027ff63 /system/lib/libart.so (_ZN3art3JNI16NewWeakGlobalRefEP7_JNIEnvP8_jobject+418) 
06-20 09:58:55.143 17740 17740 F DEBUG :  #10 pc 0000b5cf /data/app/mSales.mSales-1/lib/arm/libmonodroid.so 
06-20 09:58:55.143 17740 17740 F DEBUG :  #11 pc 00009e71 /data/app/mSales.mSales-1/lib/arm/libmonodroid.so 
06-20 09:58:55.143 17740 17740 F DEBUG :  #12 pc 002326c8 /data/app/mSales.mSales-1/lib/arm/libmonosgen-2.0.so 

Antwort

0

Der Schlüssel hier ist 'schwacher Überlauf globale Referenztabelle (max = 51200)'. Im Grunde behalten Sie einen Verweis auf etwas, das von einem JNI-Aufruf zurückgegeben wurde, und geben es niemals frei.

Das Beste, was Sie tun müssen, ist, wo immer Sie JNI-Aufrufe tätigen, und überprüfen Sie, ob Sie die Referenzen entfernen, sobald Sie damit fertig sind.

Wenn Sie keine JNI-Anrufe tätigen, ist es auch wahrscheinlich, dass Sie Referenzen aufbewahren, die Sie nicht mehr benötigen. Achten Sie auf verschachtelte Verweise, diese werden nie über den gesamten Lebenszyklus der Anwendung gesammelt, bis Sie auf eine Betriebssystem-Ausnahme stoßen.

+0

Vielen Dank für Ihre Hilfe, wir werden uns darum kümmern. Kannst du bitte ein Beispiel für einen JNI-Aufruf nennen, der das möglicherweise verursachen könnte? Auch bei verschachtelten Referenzen meinen Sie Referenzen aus verschachtelten Klassen? – Datatech

+0

Alles, was einen Wert von einem JNI speichert, aber wenn Sie das fragen müssen, werden Sie höchstwahrscheinlich keinen nativen Anruf tätigen. Mit verschachtelten Referenzen, meine ich Klassen, die Referenzen auf Klassen halten, die wiederum Referenzen behalten. Der Garbage Collector kann sie dann niemals freigeben, da die gesamte Kette Verbindungen zueinander hält. – Ewald