Android Fatal señal 11 (SIGSEGV) en 0x636f7d89 (código=1). ¿Cómo se puede localizar?


He estado leyendo los otros mensajes sobre el seguimiento de las razones para obtener un SIGSEGV en una aplicación de Android. Planeo buscar en mi aplicación posibles NullPointers relacionados con el uso de Canvas, pero mi SIGSEGV muestra una dirección de memoria diferente cada vez. Además he visto code=1 y code=2. Si la dirección de memoria fuera 0x00000000, tendría una pista de que es un NullPointer.

El último que obtuve fue un code=2:

A/libc(4969): Fatal signal 11 (SIGSEGV) at 0x42a637d9 (code=2)

¿Alguna sugerencia sobre cómo rastrear esto?

Tengo un sospechoso, pero no estoy interesado en experimentar con él todavía. Mi aplicación utiliza la API de OSMDroid para el mapeo sin conexión. La clase OverlayItem representa marcadores / nodos en el mapa. Tengo un Servicio que recopila datos a través de la red para rellenar el OverlayItem que luego se muestran en el mapa. En un esfuerzo por simplificar mi diseño, extendí OverlayItem en mi propia clase NodeOverlayItem, que incluye algunos atributos de adición que uso en la actividad de interfaz de usuario y en el Servicio. Esto me dio un solo punto de información de elementos para la interfaz de usuario y Servicio. Utilicé Intents para transmitir a la actividad para actualizar el mapa de la interfaz de usuario cuando algo cambiaba. La Actividad se une al Servicio y hay un método de Servicio para obtener la lista de NodeOverlayItem. Creo que podría ser el uso de OverlayItem de la API de OSMDroid, y mi Servicio actualizando la información del nodo al mismo tiempo. (un problema de concurrencia)

Mientras escribo esto creo que ese es realmente el problema. El dolor de cabeza no es dividir el Nodo y OverlayItem de NodeOverlayItem, es que el Actividad necesitará algunos datos del nodo, que el Servicio tiene. Además cuando se crea la Actividad (onResume, etc...) los objetos OverlayItem deberán volver a crearse a partir de los datos de Nodo que el Servicio ha estado manteniendo mientras la Actividad estaba ausente. por ejemplo, inicia la aplicación, el Servicio recopila datos, la interfaz de usuario lo muestra, va a Casa, luego vuelve a la aplicación, la Actividad tendrá que extraer y volver a crear el OverlayItem de los últimos datos del nodo de servicio.

Sé que esto no es un preguntas buenas o claras. Es como si todas mis preguntas fueran de nicho u oscuras. Si alguien tiene una sugerencia sobre cómo interpretar esos errores SIGSEGV, ¡sería muy apreciado!

ACTUALIZACIÓN Aquí está el último bloqueo capturado durante una sesión de depuración. Tengo 3 de estos dispositivos que se utilizan para pruebas y no todos se bloquean de manera confiable cuando estoy desarrollando y probando. Incluí un poco más solo para que el registro de GC pudiera notarse. Puede ver que el problema probablemente no está relacionado con agotamiento de la memoria.

03-03 02:02:38.328: I/CommService(7477): Received packet from: 192.168.1.102
03-03 02:02:38.328: I/CommService(7477): Already processed this packet. It's a re-broadcast from another node, or from myself. It's not a repeat broadcast though.
03-03 02:02:38.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:38.460: D/CommService(7477): Monitoring nodes...
03-03 02:02:38.515: D/dalvikvm(7477): GC_CONCURRENT freed 2050K, 16% free 17151K/20359K, paused 3ms+6ms
03-03 02:02:38.515: I/CommService(7477): Received packet from: 192.168.1.102
03-03 02:02:38.515: D/CommService(7477): Forwarding packet (4f68802cf10684a83ac4936ebb3c934d) along to other nodes.
03-03 02:02:38.609: I/CommService(7477): Received packet from: 192.168.1.100
03-03 02:02:38.609: D/CommService(7477): Forwarding packet (e4bc81e91ec92d06f83e03068f52ab4) along to other nodes.
03-03 02:02:38.609: D/CommService(7477): Already processed this packet: 4204a5b27745ffe5e4f8458e227044bf
03-03 02:02:38.609: A/libc(7477): Fatal signal 11 (SIGSEGV) at 0x68f52abc (code=1)
03-03 02:02:38.914: I/DEBUG(4008): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-03 02:02:38.914: I/DEBUG(4008): Build fingerprint: 'Lenovo/IdeaTab_A1107/A1107:4.0.4/MR1/eng.user.20120719.150703:user/release-keys'
03-03 02:02:38.914: I/DEBUG(4008): pid: 7477, tid: 7712  >>> com.test.testm <<<
03-03 02:02:38.914: I/DEBUG(4008): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 68f52abc
03-03 02:02:38.914: I/DEBUG(4008):  r0 68f52ab4  r1 412ef268  r2 4d9c3bf4  r3 412ef268
03-03 02:02:38.914: I/DEBUG(4008):  r4 001ad8f8  r5 4d9c3bf4  r6 412ef268  r7 4c479df8
03-03 02:02:38.914: I/DEBUG(4008):  r8 4d9c3c0c  r9 4c479dec  10 46cf260a  fp 4d9c3c24
03-03 02:02:38.914: I/DEBUG(4008):  ip 40262a04  sp 4d9c3bc8  lr 402d01dd  pc 402d0182  cpsr 00000030
03-03 02:02:38.914: I/DEBUG(4008):  d0  00000001000c0102  d1  3a22364574614c7d
03-03 02:02:38.914: I/DEBUG(4008):  d2  403fc0000000007d  d3  363737343433350a
03-03 02:02:38.914: I/DEBUG(4008):  d4  49544341223a2273  d5  6f6567222c224556
03-03 02:02:38.914: I/DEBUG(4008):  d6  3a223645676e6f4c  d7  000000013835372d
03-03 02:02:38.914: I/DEBUG(4008):  d8  0000000000000000  d9  4040000000000000
03-03 02:02:38.914: I/DEBUG(4008):  d10 0000000000000000  d11 4040000000000000
03-03 02:02:38.914: I/DEBUG(4008):  d12 4040000000000000  d13 0000000000000021
03-03 02:02:38.914: I/DEBUG(4008):  d14 0000000000000000  d15 0000000000000000
03-03 02:02:38.914: I/DEBUG(4008):  d16 3fe62e42fefa39ef  d17 3ff0000000000000
03-03 02:02:38.914: I/DEBUG(4008):  d18 3fe62e42fee00000  d19 0000000000000000
03-03 02:02:38.914: I/DEBUG(4008):  d20 0000000000000000  d21 3ff0000000000000
03-03 02:02:38.914: I/DEBUG(4008):  d22 4028000000000000  d23 3ff0000000000000
03-03 02:02:38.914: I/DEBUG(4008):  d24 0000000000000000  d25 3ff0000000000000
03-03 02:02:38.914: I/DEBUG(4008):  d26 0000000000000000  d27 c028000000000000
03-03 02:02:38.914: I/DEBUG(4008):  d28 0000000000000000  d29 3ff0000000000000
03-03 02:02:38.914: I/DEBUG(4008):  d30 3ff0000000000000  d31 3fecccccb5c28f6e
03-03 02:02:38.914: I/DEBUG(4008):  scr 60000013
03-03 02:02:39.046: I/DEBUG(4008):          #00  pc 0006b182  /system/lib/libcrypto.so (EVP_DigestFinal_ex)
03-03 02:02:39.046: I/DEBUG(4008):          #01  pc 0006b1d8  /system/lib/libcrypto.so (EVP_DigestFinal)
03-03 02:02:39.054: I/DEBUG(4008):          #02  pc 0001f814  /system/lib/libnativehelper.so
03-03 02:02:39.054: I/DEBUG(4008):          #03  pc 0001ec30  /system/lib/libdvm.so (dvmPlatformInvoke)
03-03 02:02:39.054: I/DEBUG(4008):          #04  pc 00058c70  /system/lib/libdvm.so (_Z16dvmCallJNIMethodPKjP6JValuePK6MethodP6Thread)
03-03 02:02:39.054: I/DEBUG(4008): code around pc:
03-03 02:02:39.054: I/DEBUG(4008): 402d0160 0003151e 4604b570 f7ff460d 4620ff81  ....p..F.F.... F
03-03 02:02:39.054: I/DEBUG(4008): 402d0170 f7ff4629 bd70ff93 4604b570 460e6800  )F....p.p..F.h.F
03-03 02:02:39.054: I/DEBUG(4008): 402d0180 68834615 dd062b40 21fa4810 44784a10  .F.h@+...H.!.JxD
03-03 02:02:39.054: I/DEBUG(4008): 402d0190 f7c8447a 6821f80f 698a4620 47904631  zD....!h F.i1F.G
03-03 02:02:39.054: I/DEBUG(4008): 402d01a0 b1154606 68836820 6822602b b12b6a13  .F.. h.h+`"h.j+.
03-03 02:02:39.054: I/DEBUG(4008): code around lr:
03-03 02:02:39.054: I/DEBUG(4008): 402d01bc 68e06821 21006c4a ea0af7c4 bd704630  !h.hJl.!....0Fp.
03-03 02:02:39.054: I/DEBUG(4008): 402d01cc 00031492 000314b5 4604b570 ffcef7ff  ........p..F....
03-03 02:02:39.054: I/DEBUG(4008): 402d01dc 46204605 ff12f7ff bd704628 4604b573  .F F....(Fp.s..F
03-03 02:02:39.054: I/DEBUG(4008): 402d01ec 2102460d fb36f002 42ab6823 b123d020  .F.!..6.#h.B .#.
03-03 02:02:39.054: I/DEBUG(4008): 402d01fc b1136c5b f7c868e0 68a0fccf 05c26025  [l...h.....h%`..
03-03 02:02:39.054: I/DEBUG(4008): memory map around addr 68f52abc:
03-03 02:02:39.054: I/DEBUG(4008): 4d8c5000-4d9c4000 
03-03 02:02:39.054: I/DEBUG(4008): (no map for address)
03-03 02:02:39.054: I/DEBUG(4008): b0001000-b0009000 /system/bin/linker
03-03 02:02:39.054: I/DEBUG(4008): stack:
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3b88  408d1f90  /system/lib/libdvm.so
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3b8c  412ef258  /dev/ashmem/dalvik-heap (deleted)
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3b90  00000001  
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3b94  408d6c58  /system/lib/libdvm.so
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3b98  408d6fa8  /system/lib/libdvm.so
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3b9c  4c479dec  
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3ba0  46cf260a  /system/framework/core.odex
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3ba4  408735e7  /system/lib/libdvm.so
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3ba8  412ef258  /dev/ashmem/dalvik-heap (deleted)
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bac  002bf070  [heap]
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bb0  412ef258  /dev/ashmem/dalvik-heap (deleted)
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bb4  00000000  
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bb8  412ef268  /dev/ashmem/dalvik-heap (deleted)
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bbc  00000000  
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bc0  df0027ad  
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bc4  00000000  
03-03 02:02:39.054: I/DEBUG(4008): #00 4d9c3bc8  001ad8f8  [heap]
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bcc  002ae0b8  [heap]
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bd0  00000004  
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bd4  402d01dd  /system/lib/libcrypto.so
03-03 02:02:39.054: I/DEBUG(4008): #01 4d9c3bd8  001ad8f8  [heap]
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3bdc  002ae0b8  [heap]
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3be0  00000004  
03-03 02:02:39.054: I/DEBUG(4008):     4d9c3be4  4024e817  /system/lib/libnativehelper.so
03-03 02:02:39.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:39.500: D/CommService(7477): Monitoring nodes...
03-03 02:02:39.500: D/dalvikvm(7477): GC_FOR_ALLOC freed 2073K, 16% free 17118K/20359K, paused 51ms
03-03 02:02:39.632: D/dalvikvm(7477): GC_CONCURRENT freed 1998K, 16% free 17162K/20359K, paused 2ms+4ms
03-03 02:02:40.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:40.445: D/CommService(7477): Monitoring nodes...
03-03 02:02:40.562: D/dalvikvm(7477): GC_CONCURRENT freed 2045K, 16% free 17158K/20359K, paused 3ms+4ms
03-03 02:02:41.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:41.445: D/CommService(7477): Monitoring nodes...
03-03 02:02:41.531: D/dalvikvm(7477): GC_CONCURRENT freed 2045K, 16% free 17154K/20359K, paused 3ms+12ms
03-03 02:02:42.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:42.445: D/CommService(7477): Monitoring nodes...
03-03 02:02:42.507: D/dalvikvm(7477): GC_CONCURRENT freed 2068K, 16% free 17128K/20359K, paused 3ms+4ms
03-03 02:02:42.679: D/dalvikvm(7477): GC_CONCURRENT freed 2006K, 16% free 17161K/20359K, paused 2ms+12ms
03-03 02:02:43.140: I/BootReceiver(1236): Copying /data/tombstones/tombstone_05 to DropBox (SYSTEM_TOMBSTONE)
03-03 02:02:43.210: D/dalvikvm(1236): GC_FOR_ALLOC freed 912K, 17% free 10207K/12295K, paused 62ms
03-03 02:02:43.265: D/dalvikvm(1236): GC_FOR_ALLOC freed 243K, 16% free 10374K/12295K, paused 49ms
03-03 02:02:43.265: I/dalvikvm-heap(1236): Grow heap (frag case) to 10.507MB for 196628-byte allocation
Author: CAMOBAP, 2013-07-24

13 answers

Primero, obtenga su rastro de pila de lápida, se imprimirá cada vez que su aplicación se bloquee. Algo como esto:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'XXXXXXXXX'
pid: 1658, tid: 13086  >>> system_server <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 64696f7e
 r0 00000000  r1 00000001  r2 ad12d1e8  r3 7373654d
 r4 64696f72  r5 00000406  r6 00974130  r7 40d14008
 r8 4b857b88  r9 4685adb4  10 00974130  fp 4b857ed8
 ip 00000000  sp 4b857b50  lr afd11108  pc ad115ebc  cpsr 20000030
 d0  4040000040000000  d1  0000004200000003
 d2  4e72cd924285e370  d3  00e81fe04b1b64d8
 d4  3fbc71c7009b64d8  d5  3fe999999999999a
 d6  4010000000000000  d7  4000000000000000
 d8  4000000000000000  d9  0000000000000000
 d10 0000000000000000  d11 0000000000000000
 d12 0000000000000000  d13 0000000000000000
 d14 0000000000000000  d15 0000000000000000
 scr 80000012

         #00  pc 000108d8  /system/lib/libc.so
         #01  pc 0003724c  /system/lib/libxvi020.so
         #02  pc 0000ce02  /system/lib/libxvi020.so
         #03  pc 0000d672  /system/lib/libxvi020.so
         #04  pc 00010cce  /system/lib/libxvi020.so
         #05  pc 00004432  /system/lib/libwimax_jni.so
         #06  pc 00011e74  /system/lib/libdvm.so
         #07  pc 0004354a  /system/lib/libdvm.so
         #08  pc 00017088  /system/lib/libdvm.so
         #09  pc 0001c210  /system/lib/libdvm.so
         #10  pc 0001b0f8  /system/lib/libdvm.so
         #11  pc 00059c24  /system/lib/libdvm.so
         #12  pc 00059e3c  /system/lib/libdvm.so
         #13  pc 0004e19e  /system/lib/libdvm.so
         #14  pc 00011b94  /system/lib/libc.so
         #15  pc 0001173c  /system/lib/libc.so

code around pc:
ad115e9c 4620eddc bf00bd70 0001736e 0001734e 
ad115eac 4605b570 447c4c0a f7f44620 e006edc8 
ad115ebc 42ab68e3 68a0d103 f7f42122 6864edd2 
ad115ecc d1f52c00 44784803 edbef7f4 bf00bd70 
ad115edc 00017332 00017312 2100b51f 46682210 

code around lr:
afd110e8 e2166903 1a000018 e5945000 e1a02004 
afd110f8 e2055a02 e1a00005 e3851001 ebffed92 
afd11108 e3500000 13856002 1a000001 ea000009 
afd11118 ebfffe50 e1a01004 e1a00006 ebffed92 
afd11128 e1a01005 e1550000 e1a02006 e3a03000 

stack:
    4b857b10  40e43be8  
    4b857b14  00857280  
    4b857b18  00000000  
    4b857b1c  034e8968  
    4b857b20  ad118ce9  /system/lib/libnativehelper.so
    4b857b24  00000002  
    4b857b28  00000406

Luego, use la utilidad addr2line (encuéntrela en su cadena de herramientas NDK) para encontrar la función que se bloquea. En esta muestra, se hace

addr2line -e -f libc.so 0001173c

Y verás de dónde sacaste el problema. Por supuesto, esto no te ayudará ya que está en libc.

Así que puedes combinar las utilidades de arm-eabi-objdump para encontrar el objetivo final.

, créanme, es un duro tarea.




Solo para una actualización. Creo que estuve haciendo la compilación nativa de Android desde el árbol de fuentes completas durante bastante tiempo, hasta hoy he leído cuidadosamente los documentos NDK. Desde el lanzamiento de NDK-r6, ha proporcionado una utilidad llamada ndk-stack.

A continuación se muestra el contenido de los documentos oficiales de NDK con la bola de alquitrán NDK-r9.

Descripción general:

ndk-stack es una sencilla herramienta que permite filtrar los rastros de pila a medida que aparecen en la salida de 'adb logcat' y reemplazar cualquier dirección dentro de una biblioteca compartida con los valores : correspondientes.

En pocas palabras, traducirá algo como:

  I/DEBUG   (   31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
  I/DEBUG   (   31): Build fingerprint: 'generic/google_sdk/generic/:2.2/FRF91/43546:eng/test-keys'
  I/DEBUG   (   31): pid: 351, tid: 351  %gt;%gt;%gt; /data/local/ndk-tests/crasher <<<
  I/DEBUG   (   31): signal 11 (SIGSEGV), fault addr 0d9f00d8
  I/DEBUG   (   31):  r0 0000af88  r1 0000a008  r2 baadf00d  r3 0d9f00d8
  I/DEBUG   (   31):  r4 00000004  r5 0000a008  r6 0000af88  r7 00013c44
  I/DEBUG   (   31):  r8 00000000  r9 00000000  10 00000000  fp 00000000
  I/DEBUG   (   31):  ip 0000959c  sp be956cc8  lr 00008403  pc 0000841e  cpsr 60000030
  I/DEBUG   (   31):          #00  pc 0000841e  /data/local/ndk-tests/crasher
  I/DEBUG   (   31):          #01  pc 000083fe  /data/local/ndk-tests/crasher
  I/DEBUG   (   31):          #02  pc 000083f6  /data/local/ndk-tests/crasher
  I/DEBUG   (   31):          #03  pc 000191ac  /system/lib/libc.so
  I/DEBUG   (   31):          #04  pc 000083ea  /data/local/ndk-tests/crasher
  I/DEBUG   (   31):          #05  pc 00008458  /data/local/ndk-tests/crasher
  I/DEBUG   (   31):          #06  pc 0000d362  /system/lib/libc.so
  I/DEBUG   (   31):

En la salida más legible:

  ********** Crash dump: **********
  Build fingerprint: 'generic/google_sdk/generic/:2.2/FRF91/43546:eng/test-keys'
  pid: 351, tid: 351  >>> /data/local/ndk-tests/crasher <<<
  signal 11 (SIGSEGV), fault addr 0d9f00d8
  Stack frame #00  pc 0000841e  /data/local/ndk-tests/crasher : Routine zoo in /tmp/foo/crasher/jni/zoo.c:13
  Stack frame #01  pc 000083fe  /data/local/ndk-tests/crasher : Routine bar in /tmp/foo/crasher/jni/bar.c:5
  Stack frame #02  pc 000083f6  /data/local/ndk-tests/crasher : Routine my_comparison in /tmp/foo/crasher/jni/foo.c:9
  Stack frame #03  pc 000191ac  /system/lib/libc.so
  Stack frame #04  pc 000083ea  /data/local/ndk-tests/crasher : Routine foo in /tmp/foo/crasher/jni/foo.c:14
  Stack frame #05  pc 00008458  /data/local/ndk-tests/crasher : Routine main in /tmp/foo/crasher/jni/main.c:19
  Stack frame #06  pc 0000d362  /system/lib/libc.so

Uso:

Para hacer esto, primero necesitará un directorio que contenga versiones simbólicas de las bibliotecas compartidas de su aplicación. Si utiliza el sistema de compilación NDK (es decir, ndk-build), estos siempre se encuentran en PROJ PROJECT_PATH / obj / local/, donde significa ABI de su dispositivo (es decir, armeabi por defecto).

Puede alimentar el texto logcat ya sea como entrada directa al programa, por ejemplo:

adb logcat | $NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi

O puede usar la opción-dump para especificar el logcat como un archivo de entrada, por ejemplo:

adb logcat > /tmp/foo.txt
$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump foo.txt

IMPORTANTE:

La herramienta busca la línea inicial que contiene inicios en la salida logcat, es decir, algo que se parece a:

 *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

Cuando copie / pegue trazas, no olvide esta línea de las trazas, o ndk-stack no funcionará correctamente.

TODO:

Una versión futura de ndk-stack intentará lanzar adb logcat y seleccionar la ruta de la biblioteca automáticamente. Por ahora, tendrás que hacer estos pasos manualmente.

A partir de ahora, ndk-stack no maneja bibliotecas que no tienen información de depuración en ellas. Puede ser útil tratar de detectar el punto de entrada de función más cercano a una dirección de PC dada (por ejemplo, como en el libc.so ejemplo anterior).

 131
Author: Robin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-11 08:51:14

OK! Lo siento mucho a aquellos que realmente han enviado comentarios y respuestas, pero encontré el problema. No creo que esto ayude a muchos otros tratando de rastrear su SIGSEGV personal, pero el mío (y fue muy difícil) estaba completamente relacionado con esto:

Https://code.google.com/p/android/issues/detail?id=8709

El libcrypto.so en mi basurero me dio una pista. Hago un hash MD5 de los datos del paquete cuando intento determinar si ya he visto el paquete, y saltearlo si lo hubiera hecho. Pensé que en un momento este era un feo tema de threading relacionado con el seguimiento de los hashes, pero resultó que era el java.seguridad.MessageDigest class! ¡No es seguro!

Lo intercambié con un UID que estaba rellenando en cada paquete basado en el UUID del dispositivo y una marca de tiempo. No hay problemas desde entonces.

Supongo que la lección que puedo impartir a los que estaban en mi situación es, incluso si eres una aplicación 100% Java, prestar atención a la biblioteca nativa y el símbolo anotado en el volcado de emergencia en busca de pistas. Buscar en Google SIGSEGV + el nombre lib. so irá mucho más lejos que el código inútil=1, etc... A continuación, piense en dónde su aplicación Java podría tocar el código nativo, incluso si no es nada lo que está haciendo. Cometí el error de asumir que era un problema de subproceso de Servicio + interfaz de usuario donde el Lienzo estaba dibujando algo que era nulo, (el caso más común que busqué en Google en SIGSEGV) e ignoré la posibilidad de que pudiera haber estado completamente relacionado con el código que escribí que estaba relacionado con así que en el vertedero. Naturalmente java.seguridad usaría un componente nativo en libcrypto.so para la velocidad, así que una vez que me enteré, Busqué en Google para Android + SIGSEGV + libcrypto.so y encontró el problema documentado. ¡Buena suerte!

 36
Author: garlicman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-29 16:46:12

Estaba obteniendo este error al guardar un objeto en las preferencias compartidas como una cadena gson convertida. La cadena gson no era buena, por lo que recuperar y deserializar el objeto no funcionaba correctamente. Esto significaba que cualquier acceso posterior al objeto resultó en este error. Miedo:)

 30
Author: Daniel Wilson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-06 22:28:40

También obtuve este error muchas veces y lo resolví. Este error se enfrentará en caso de gestión de memoria en el lado nativo.

Su aplicación está accediendo a la memoria fuera de su espacio de direcciones. Lo más probable es que este sea un acceso de puntero no válido. SIGSEGV = error de segmentación en código nativo. Dado que no está ocurriendo en el código Java, no verá un seguimiento de pila con detalles. Sin embargo, todavía puede ver alguna información de seguimiento de pila en el logcat si mira un poco después de la aplicación el proceso se bloquea. No le dirá el número de línea dentro del archivo, pero le dirá qué archivos objeto y direcciones estaban en uso en la cadena de llamadas. A partir de ahí, a menudo puede averiguar qué área del código es problemática. También puede configurar una conexión nativa gdb al proceso de destino y capturarla en el depurador.

 22
Author: Vivek Bansal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-11 12:23:40

He encontrado este error cuando intenté acceder al' lienzo ' fuera de onDraw()

    private Canvas canvas;

    @Override
    protected void onDraw(Canvas canvas) {
        this.canvas = canvas;
        ....... }

    private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
        @Override
        public boolean onScale(ScaleGestureDetector detector) { 
            canvas.save(); // here

Una muy mala práctica: /

 6
Author: Prabs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-06 10:39:28

Intenta desactivar la aceleración de hardware de Android en tu manifiesto.

android:hardwareAccelerated="false"
 6
Author: BYISHIMO Audace,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-29 09:05:28

Estaba recibiendo este error al usar un mapa de bits como este:

bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.myBitMap);

Lo que solucionó el problema para mí fue reducir el tamaño del mapa de bits (>1000px de alto a 700px).

 4
Author: David Walton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-12 18:16:27

Me he enfrentado a SIGSEGV en Android 4.4.4 (Nexuses, Samsungs) Y resultó que el error fatal estaba en el análisis null String usando DecimalFormat

 static DecimalFormat decimalFormat = new DecimalFormat("###,###.###");
 void someMethod(String value) {
...
    Number number = decimalFormat.parse(value);//value is null, SIGSEGV will happen`
...
}

En Android > 21 se manejó con éxito con try / catch

 4
Author: Yazazzello,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-24 11:36:45

Hoy me enfrenté a Fatal signal 11 (SIGSEGV), code 1, fault addr 0x8 in tid 18161 problema y lucho medio día para resolver esto.

He intentado muchas cosas borrar caché y borrar.archivo de gradle y todo.

Finalmente yo disable Instant Run y ahora no estoy recibiendo este problema de nuevo. Ahora mi aplicación está funcionando después de habilitar instant run también. Puede ser el problema de instant run, intente deshabilitar y habilitar instant run

 3
Author: Naveen Kumar M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-31 10:56:01

Si está utilizando la biblioteca vitamio y se produce este error fatal.

Entonces asegúrate de que en tu proyecto gradle targetSdkVersion debe ser menor que 23.

Gracias.

 2
Author: mehmoodnisar125,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-12 09:32:47

Compruebe su código JNI/nativo. Una de mis referencias era nula, pero era intermitente, así que no era muy obvia.

 0
Author: zMan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-14 22:49:15

Compruebe sus funciones nativas,ya sea que esté regresando correctamente o no,si no se devuelve, agregue instrucciones return.

 0
Author: Jeyanth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-27 11:52:37

En mi caso, el problema fue causado por el generador de perfiles de Android. En Android Studio, haz clic en "Android Profiler" y "end session".

Irónicamente, también estaba causando problemas de rendimiento extremos en la aplicación.

 0
Author: tomacco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-02 17:20:34