2012-06-12 15 views
5

Estoy usando una tableta de bajo costo con Android 4.0.3. Aquí el registro:Extraño accidente de dibujo sobre lienzo en Android 4.0.3. A/libc: señal fatal 11 (SIGSEGV)

06-11 23:36:04.653: D/SynopticElement(1583): Size changed to 200x200 
06-11 23:36:04.693: D/dalvikvm(1583): GC_FOR_ALLOC freed 62K, 12% free 7275K/8199K, paused 33ms 
06-11 23:36:04.713: D/SynopticElement(1583): Size changed to 190x190 
06-11 23:36:04.733: D/dalvikvm(1583): GC_FOR_ALLOC freed 9K, 12% free 7583K/8583K, paused 22ms 
06-11 23:36:04.743: A/libc(1583): Fatal signal 11 (SIGSEGV) at 0xc52c9d4c (code=1) 

Depuración mi código:

canvas.scale(getWidth(), getWidth()); //I'm drawing a custom component 

Paint frameBackgroundPainter = new Paint(); 
frameBackgroundPainter.setAntiAlias(true); 
frameBackgroundPainter.setStyle(Paint.Style.FILL); 
frameBackgroundPainter.setColor(0xff000000); 

Paint frameBorderPainter = new Paint(); 
frameBorderPainter.setAntiAlias(true); 
frameBorderPainter.setStrokeWidth(0.007f); //canvas is scaled 
frameBorderPainter.setStyle(Paint.Style.STROKE); 
frameBorderPainter.setColor(0xffaaaaaa); 

RectF frameRect = getFrameBorder(); //simply get the Rect to draw on canvas 
canvas.drawRect(frameRect, frameBackgroundPainter); //draw the background 

// ---> If I comment this line app does not crash!!!!! <--- 
canvas.drawRect(frameRect, frameBorderPainter); //draw the border 

Hay un problema con la anchura del trazo de pintura, He probado con diferentes valores:

0.007f -> crash 
0.009f -> crash 
0.5f -> ok 
0.1f -> ok 

Alguien me puede contar para trabajar con una escala de lienzo diferente debido al valor muy bajo para el ancho de línea: ok, pero todo está bien si configuro width=0.007f yr la aplicación en Android 2.3 (tableta y teléfono) y Android 3.0 (tableta) ...

No estoy emitiendo ninguna solución para dibujar la frontera de una manera diferente, me pregunto si alguien sabe si esto es una error de Android 4.0.3.

También estoy pensando que puede ser un problema de hardware gráfico de mi tableta de bajo costo, desafortunadamente no tengo otro dispositivo Android 4.0.3 para hacer pruebas ...

Mis ficha Medidas:

DisplayMetrics{density=1.0, width=480, height=752, scaledDensity=1.0, xdpi=160.0, ydpi=160.42105} 

y para obtener más información sobre el dispositivo, visite this link.

+0

Se le acabó la memoria debido a la pérdida de memoria – XepterX

+0

¿Cómo puede decir eso? –

+1

porque tenía el mismo estado que en mi teléfono Android 4.0.3 y después de algunas investigaciones, encontré que esto fue causado por la pérdida de memoria – XepterX

Respuesta

0

Este fue un error común al detener una aplicación OpenGL-ES en Intel x86 AVD (cada lanzamiento se bloquea en onStop()). Aquí hay una solución rápida: - Abra AndroidManifest.xml, agregue la etiqueta android: allowClearUserData = "true" al nodo de la aplicación.

 
    <application 
      android:allowBackup="true" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme" 
      android:allowClearUserData="true" > 

+0

Estoy bastante seguro de que esto no se ajusta a este caso .... –

Cuestiones relacionadas