奇怪的崩溃在Android 4.0.3上绘图画布。 A / libc的:致命信号11(SIGSE

2019-06-25 09:52发布

我使用了Android 4.0.3低成本的平板电脑。 这里的日志:

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)

调试我的代码:

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

有一个与绘画描边宽度问题 ,我有不同的值tryed:

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

有人可以告诉我有不同的画布规模的工作,因为线宽价值很低:OK,但一切都很好,如果我设置width=0.007f和Android 2.3的(平板电脑和手机)和Android 3.0运行应用程序(片剂)...

我不excpetcing任何解决方案以不同的方式来绘制边界,我想知道如果任何人知道,如果这就是Android 4.0.3的一个bug。

我也想这可能是我的低成本平板电脑的图形硬件问题,可惜的是我没有其他Android 4.0.3设备进行测试...

我的标签中的指标:

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

并为更多的设备信息,请访问此链接 。

Answer 1:

停止对英特尔的x86 AVD一个OpenGL-ES应用程序时,这是一个常见的错误(在每次的onStop推出崩溃())。 这里有一个快速的解决方案: - 打开AndroidManifest.xml中,添加机器人:allowClearUserData =“true”标记的应用程序节点。

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



文章来源: Strange crash drawing on canvas on Android 4.0.3. A/libc: Fatal signal 11 (SIGSEGV)