遇到的2.4.0creator的2个bug

  • Creator 版本:2.4.0

  • 目标平台:

  • 详细报错信息,包含调用堆栈:

  • 重现方式:

  • 之前哪个版本是正常的 :

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :

  • 编辑器之前是否有其它报错 :

  • 出现概率:100%

  • 额外线索:

第一个bug:
每次构建iOS版本,main.js里面这一段代码中的settings.xxxx.js;后面这一段xxxx不会自动更改。导致每次启动都报错,要手动改一下

if (window.jsb) {
var isRuntime = (typeof loadRuntime === ‘function’);
if (isRuntime) {
require(‘src/settings.bc361.js’);
require(‘src/cocos2d-runtime.js’);
if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) {
require(‘src/physics.df77a.js’);
}
require(‘jsb-adapter/engine/index.js’);
}
else {
require(‘src/settings.bc361.js’);
require(‘src/cocos2d-jsb.46ab2.js’);
if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) {
require(‘src/physics.df77a.js’);
}
require(‘jsb-adapter/jsb-engine.js’);
}

cc.macro.CLEANUP_IMAGE_CACHE = true;
window.boot();

}

第二个bug,使用了3D粒子,发现创建多了会崩溃
报错E/renderer (665): ccBindBuffer(0x8893, ib ? ib->getHandle(): 0); GL error 0x501: GL_INVALID_VALUE:restoreIndexBuffer
:joy:NewProject.zip (1.2 MB)

@EndEvil @jare

请问,你有用自定义的构建模板?

没有,一开始用的default模版构建,然后也是报错,我也想过是否自定义构建模版问题。
然后发现只有default的自定义构建模版,然后就删了。也是一样情况。

后来改为用link,link没有自定义构建模版;第一次构建没有报错。
后面修改代码,重新构建就发生第一个问题了。

那个崩溃有结论了吗?
我的是使用了大量的label。导致的崩溃。

2.4.2 3D粒子也有这个GL error,不过只有IOS会崩溃,Android只是报错,这是BUG吗,还是说要控制一下粒子数量。

E/renderer: (665): ccBindBuffer(0x8893, ib ? ib->getHandle(): 0); GL error 0x501: GL_INVALID_VALUE:restoreIndexBuffer

E/renderer: (665): ccBindBuffer(0x8893, ib ? ib->getHandle(): 0); GL error 0x501: GL_INVALID_VALUE:restoreIndexBuffer
我也遇到这个问题,在网页上没问题,打包到android上就提示这个错误

import FF from “…/FF”;

const { ccclass, property } = cc._decorator;
const CALC_RECT_WIDTH = 40;
const CLEAR_LINE_WIDTH = 40;
/**

  • 小地图
    */
    @ccclass
    export default class FLiteMap extends cc.Component {

    @property(cc.Node)
    maskNode: cc.Node = null;

    @property(cc.Node)
    mIcon: cc.Node = null;

    private ff: FF;
    /**

    • 绘制的点
      /
      public tempDrawPoint: cc.Vec2 = null;
      onLoad() {
      }
      public initMap(ff:FF){
      this.ff = ff;
      let widget = this.node.getComponent(cc.Widget);
      widget.target = this.ff.main.node;
      }
      public transform(pos:cc.Vec2){
      let x = pos.x
      this.node.width/this.ff.mMap.node.width;
      let y = pos.y*this.node.height/this.ff.mMap.node.height;
      return cc.v2(x,y);
      }
      clearMask(pos:cc.Vec2) {
      //地图坐标转化为小地图坐标
      let tpos = this.transform(pos);
      this.mIcon.setPosition(tpos);
      let mask: any = this.maskNode.getComponent(cc.Mask);
      let stencil = mask._graphics;
      if (this.tempDrawPoint == null) {
      // 只有一个点,用圆来清除涂层
      stencil.circle(tpos.x, tpos.y, CLEAR_LINE_WIDTH / 2);
      stencil.fill();

      } else {
      // 存在多个点,用线段来清除涂层
      let prevPos = this.tempDrawPoint;
      let curPos = tpos;

       stencil.moveTo(prevPos.x, prevPos.y);
       stencil.lineTo(curPos.x, curPos.y);
       stencil.lineWidth = CLEAR_LINE_WIDTH;
       stencil.lineCap = cc.Graphics.LineCap.ROUND;
       stencil.lineJoin = cc.Graphics.LineJoin.ROUND;
       stencil.strokeColor = cc.color(255, 255, 255, 255);
       stencil.stroke();
      

      }
      this.tempDrawPoint = tpos;
      }

    reset() {
    let mask: any = this.maskNode.getComponent(cc.Mask);
    mask._graphics.clear();
    }
    }
    我是使用这个代码实现类似刮刮卡的功能报错的

ios 闪退,不知道什么原因
也是报了这个错误

请问这个解决了吗?

解决了吗 这个问题?