问题描述
我正在尝试创建一个实时绘图应用程序,其中两个用户可以在同一画布上一起绘制
public class Draw {
public int color;
public int strokeWidth;
public Path path;
public Draw(int color,int strokeWidth,Path path) {
this.color = color;
this.strokeWidth = strokeWidth;
this.path = path;
}
}
我创建了ArrayList<Draw> paths = new ArrayList<>();
我现在在其中存储Draw对象以实现实时绘图,我使用gson库将上述paths对象转换为JSON,但是当我尝试反序列化时,我的应用程序因该错误而崩溃
A/libc: Fatal signal 11 (SIGSEGV),code 2,fault addr 0xe8600660 in tid 30739 (example.drawing)
for(Draw d : paths)
{
mPaint.setColor(d.color); // WRONG
mPaint.setstrokeWidth(d.strokeWidth);
mPaint.setMaskFilter(null);
mCanvas.drawPath(d.path,mPaint);
}
绘制后,这是我序列化路径数组String element = gson.toJson(paths);
首先,如果反序列化成功,我将尝试对其进行反序列化。我将使用firebase将其发送给其他人的设备,现在,我尝试使用此行代码对上述元素字符串进行反序列化
ArrayList<Draw> ddd = gson.fromJson(element,new Typetoken<ArrayList<Draw>>() {}.getType());
如果我评论反序列化应用程序不会崩溃
在其他StackOverflow答案中,他们说这是android分配空间之类的问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)