Android 4.0.3 上画布上的奇怪崩溃绘图.A/libc:致命信号 11 (SIGSEGV) [英] Strange crash drawing on canvas on Android 4.0.3. A/libc: Fatal signal 11 (SIGSEGV)

查看:37
本文介绍了Android 4.0.3 上画布上的奇怪崩溃绘图.A/libc:致命信号 11 (SIGSEGV)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用搭载 Android 4.0.3 的低成本平板电脑.这里是日志:

I'm using a low cost tablet with Android 4.0.3. Here the log:

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

笔画宽度有问题,我尝试了不同的值:

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

由于线宽的值非常低,有人可能会告诉我使用不同的画布比例:好的,但是如果我设置 width=0.007f 并在其上运行应用程序,一切正常Android 2.3(平板电脑和手机)和 Android 3.0(平板电脑)...

Someone may tell me to work with a different canvas scale because of the very low value for the line width: ok, but everything is ok if I set width=0.007f and run the app on Android 2.3 (tablet and phone) and Android 3.0 (tablet)...

我没有提出任何以不同方式绘制边框的解决方案,我想知道是否有人知道这是否是 Android 4.0.3 的错误.

I'm not excpetcing any solution to draw border in a different way, I'm wondering if anyone knows if this is a bug of Android 4.0.3.

我还认为这可能是我的低成本平板电脑的图形硬件问题,不幸的是我没有其他 Android 4.0.3 设备可以进行测试...

I'm also thinking it may be a graphic hardware issue of my low cost tablet, unfortunatelly I've no other Android 4.0.3 device to make tests...

我的标签指标:

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

有关该设备的更多信息,请访问此链接.

and for more information about the device visit this link.

推荐答案

这是在 Intel x86 AVD 上停止 OpenGL-ES 应用程序时的常见错误(每次启动都会在 onStop() 处崩溃).这是一个快速的解决方案:- 打开 AndroidManifest.xml,将 android:allowClearUserData="true" 标签添加到应用程序节点.<代码>

This was a common error when stopping an OpenGL-ES app on Intel x86 AVD (every launch crashes at onStop()). Here's a quick solution: - Open AndroidManifest.xml, add android:allowClearUserData="true" tag to the application node.


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

这篇关于Android 4.0.3 上画布上的奇怪崩溃绘图.A/libc:致命信号 11 (SIGSEGV)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆