quick-cocos UIInput字数过多崩溃问题

原创 2016年12月16日 10:29:02

问题

最近做了一个很简单的需求,就是一个输入框,结果测试人员测试的时候,直接复制粘贴了一大波文字,然后程序就崩溃了,但是就是Android平台的崩溃了,iOS的没有问题。抓日志看了,发现是Java层报错了。本来想在输入的时候做一下监听,发现怎么做都是不行的

定位

根据报错的堆栈,一路跟踪,报错的地方是在这里类Cocos2dxBitmap的getPixels中

final byte[] pixels = new byte[bitmap.getWidth()
                    * bitmap.getHeight() * 4];        

需要的内存过多,导致的OOM,然后继续分析了一下bitmap.getWidth()和bitmap.getHeight()是怎么获取的

    private static class TextProperty {
        /** The max width of lines. */
        private final int mMaxWidth;
        /** The height of all lines. */
        private final int mTotalHeight;
        private final int mHeightPerLine;
        private final String[] mLines;

        TextProperty(final int maxWidth, final int heightPerLine,
                final String[] lines) {
            this.mMaxWidth = maxWidth;
            this.mHeightPerLine = heightPerLine;
            this.mTotalHeight = heightPerLine * lines.length;
            this.mLines = lines;
        }
    }

可以看到bitmap.getHeight()是每行文字的高乘以总行数,所以当文字很多的时候需要的内存肯定很多的,所以只能找个方法限制一下字数

解决办法

在createTextBitmapShadowStroke方法中对string进行一下截取

 if(string.length()>MAX_LENGTH){
     string = string.substring(0,MAX_LENGTH)
 }

Cocos2d-x EditBox 设置字号大小不管用问题

1、有几次设置EditBox的字体大小不管用,于是跟进了Cocos

iOS开发笔记12:iOS7上UITextField限制字数输入导致崩溃问题

iOS开发笔记12:iOS7上UITextField限制字数输入导致崩溃问题

quick cocos加载csb文件直接崩溃的解决方法

由于cocos2dx整套系统包含c++引擎、cocostudio、lua、javascript等许多内容,又分为2.0、3.0两套差别较大的版本,其中一种内容修改升级后,另外一部分没有及时更新上,就导...

关于quick-cocos2d-x开发的热(yue)门(jing)问题

提示:以下大多数问题其实都可以用Google解决。 Q:有市面上的游戏在用吗?有前途(钱途)吗? A:唐门世界。有。 http://cn.quick-x.com/?p=1451 Q:有介绍吗?文...
  • kyo7552
  • kyo7552
  • 2013年12月02日 20:58
  • 1151

quick cocos2dx 2.2.5Plus中无解的问题

quick cocos2dx中使用cocostudio布局,然后再使用了其中的UIScrollView,在UIScrollView中又有按钮的话,杯具就会发生了。 现象: 当uiScrollVie...

quick-cocos2dx Socket连接若干问题总结

-- -- Author:  -- Date: 2015-04-26 10:53:55 -- SocketMessage = {} net = require("framework.cc.n...
  • kkk0526
  • kkk0526
  • 2015年05月11日 10:02
  • 5305

quick-cocos2d-x 使用CCScrollView的问题及解决方法

由于CCScrollView是cocos2d-x的中的控件,在quick-cocos2d-x中并没有对应的UI,所以CCScrollView的触摸事件与quick-cocos2d-x的触摸机制不同会产...

记录一下Quick-Cocos2dx-Community lua绑定C++自定义类遇到的问题

网上的quick版本貌似都是v3.3的,虽说过程八九不离十,但是对于我这样的新手来说还是很头痛的。 原理什么的就不说了,主要参考的是https://segmentfault.com/a/11900...

Xcode 7.3编译的cocos2d-x程序崩溃问题

本文记录了一次Xcode编译生成的cocos程序离奇崩溃问题及其解决方案。Xcode 7.3 , cocos2d-x 2.2.3....
  • elloop
  • elloop
  • 2016年03月30日 21:49
  • 1440

[quick-cocos2d-x lua学习] 官网之多分辨率适配详解

转自官方网站:http://cn.quick-x.com/?p=1436 感觉官网的这篇文章很不错,为了自己日后查看方便,就转过来了~ 下面是正题: 多种分辨率的适配一直都是一个蛋疼的问题,各家公...
  • kyo7552
  • kyo7552
  • 2013年12月06日 11:11
  • 4323
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:quick-cocos UIInput字数过多崩溃问题
举报原因:
原因补充:

(最多只允许输入30个字)