2016-08-22 9 views
0

Ich habe eine Anwendung veröffentlicht und ich bekomme diese nativen Abstürze vor allem von Galaxy J2 (90% der Abstürze). Benutzer sagen, wenn App startet, ist es ein sofortiger Absturz. Bis jetzt habe ich 25 Stürze und ich kann nicht finden, was falsch ist zu lösen. Ich kann auf Galaxy J2 nicht debuggen, aber jedes Gerät, auf dem ich die Anwendung ausführe, funktioniert problemlos. Hier ist ein Absturzbericht.Xamarin Android Native Absturz bei /system/lib/libc.so

Revision: '4' 
ABI: 'arm' 
pid: 4110, tid: 4110, name: sth.someappname >>> com.sth.someappname <<< 
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 
Abort message: '* Assertion at /Users/builder/data/lanes/3511/b5fafb24/source/mono/mono/mini/method-to-ir.c:12777, condition `mono_arch_opcode_supported (OP_ATOMIC_STORE_I4)' not met 
' 
r0 00000000 r1 0000100e r2 00000006 r3 00000000 
r4 b6f14e38 r5 00000006 r6 00000002 r7 0000010c 
r8 b4542cac r9 00000000 sl b47709b8 fp bef19930 
ip 0000100e sp bef198d8 lr b6d67e79 pc b6d8bb5c cpsr 600e0010 

backtrace: 
#00 pc 0003bb5c /system/lib/libc.so (tgkill+12) 
#01 pc 00017e75 /system/lib/libc.so (pthread_kill+52) 
#02 pc 00018a8b /system/lib/libc.so (raise+10) 
#03 pc 00015325 /system/lib/libc.so (__libc_android_abort+36) 
#04 pc 00012fb0 /system/lib/libc.so (abort+4) 
#05 pc 00291cdc /data/app/com.sth.someappname-1/lib/arm/libmonosgen-2.0.so 

Irgendeine Idee?

+0

Welche Architekturen haben Sie für das Paket aktiviert? – Gusman

+0

Ich habe alle von ihnen aktiviert. Aber alle Abstürze sind auf "ARM" –

+0

Ich denke, das Problem ist hier irgendwo https://github.com/mono/mono/blob/master/mono/mini/method-to-ir.c in der Zeile g_assert (mono_arch_opcode_supported (OP_ATOMIC_STORE_I4)); Dabei ist g_assert() definiert wie #define g_assert (expr) Debugging-Makro, um die Anwendung zu beenden, wenn die Assertion fehlschlägt. Wenn die Assertion fehlschlägt (d. H. Der Ausdruck ist nicht wahr), wird eine Fehlernachricht protokolliert und die Anwendung wird beendet. Das Makro kann in endgültigen Versionen von Code deaktiviert werden, indem G_DISABLE_ASSERT beim Kompilieren der Anwendung definiert wird. –

Antwort

0

Ich habe dieses Problem durch Entfernen der Funktion thread.sleep() aus dem Begrüßungsbildschirm behoben. Dann habe ich beschlossen, sie alle aus dem Projekt zu entfernen.

Verwandte Themen