关于VIVO报 Cannot read property 'createBuffer' of undefined错误的解决方案

官方解决方案,可以从2.1.1版本看到,
C:/CocosCreator/resources/builtin/vivo-runtime/build-runtime.js文件中添加下面函数

function supportLowVersion() {
    var fileRuntimeJs = path.join(zipRootPath, 'src', 'cocos2d-runtime.js');
    if (fs.existsSync(fileRuntimeJs)) {
        var mainString = fs.readFileSync(fileRuntimeJs, "utf8");
        //debug
        mainString = mainString.replace('window.__canvas;', 'window.__canvas || window.__cccanvas;');
        //release
        mainString = mainString.replace('window.__canvas,', 'window.__canvas || window.__cccanvas,');
        fs.writeFileSync(fileRuntimeJs, mainString);
    }
}

在下面位置执行

     handleSrc();

    //支持vivo低版本window.__cccanvas
    supportLowVersion();

    // 导出 sign 目录
    handleSign();
    // 处理 package.json
    handlePackage();
    // 导出 engine目录
    handleEngine(dirRes, dirSrc, dirAdapter, event);

及时雨啊

非常感谢,正好遇见这个问题 ,一边懵逼了很长时间。

顺便问大佬一句,这个问题的根源是什么

@ relvin

试了一下,还是之前的问题。

//支持vivo低版本window.__cccanvas
supportLowVersion();

不起作用吗老哥:joy:那怎么办,把最低版本提到最新版?

我的是2.0.10的版本,build-runtime.js文件中就有supportLowVersion这个函数,结果打包还是会报上面的bug,楼上是怎么解决的

你好,你是升项目版本解决的吗?