1.2 使用 cppmsg npm 模块时原生平台构建错误

在构建的时候出来这么个错误,一头雾水。
我的工程:TestProject.zip (345.2 KB)

Checked Python Version [2.7.12
]Creating native cocos project to F:\TTGamePlaza\build\jsb-default> 拷贝模板到 F:\TTGamePlaza\build\tempCocosProject

拷贝模板中的文件夹…
拷贝 cocos2d-x …
替换文件名中的工程名称,‘HelloJavascript’ 替换为 ‘tempCocosProject’。
替换文件中的工程名称,‘HelloJavascript’ 替换为 ‘tempCocosProject’。
替换工程的包名,‘org.cocos2dx.hellojavascript’ 替换为 ‘org.cocos2dx.tempCocosProject’。
替换 Mac 工程的 Bundle ID,‘org.cocos2dx.hellojavascript’ 替换为 ‘org.cocos2dx.tempCocosProject’。
替换 iOS 工程的 Bundle ID,‘org.cocos2dx.hellojavascript’ 替换为 ‘org.cocos2dx.tempCocosProject’。
Build Failed: Error
at new JS_Parse_Error (eval at (D:\CocosCreator\resources\app.asar\node_modules\uglify-js\tools\node.js:22:1), :1526:18)
at js_error (eval at (D:\CocosCreator\resources\app.asar\node_modules\uglify-js\tools\node.js:22:1), :1534:11)
at croak (eval at (D:\CocosCreator\resources\app.asar\node_modules\uglify-js\tools\node.js:22:1), :2026:9)
at token_error (eval at (D:\CocosCreator\resources\app.asar\node_modules\uglify-js\tools\node.js:22:1), :2034:9)
at unexpected (eval at (D:\CocosCreator\resources\app.asar\node_modules\uglify-js\tools\node.js:22:1), :2040:9)
at expr_atom (eval at (D:\CocosCreator\resources\app.asar\node_modules\uglify-js\tools\node.js:22:1), :2554:9)
at maybe_unary (eval at (D:\CocosCreator\resources\app.asar\node_modules\uglify-js\tools\node.js:22:1), :2716:19)
at expr_ops (eval at (D:\CocosCreator\resources\app.asar\node_modules\uglify-js\tools\node.js:22:1), :2751:24)
at maybe_conditional (eval at (D:\CocosCreator\resources\app.asar\node_modules\uglify-js\tools\node.js:22:1), :2756:20)
at maybe_assign (eval at (D:\CocosCreator\resources\app.asar\node_modules\uglify-js\tools\node.js:22:1), :2780:20)
at D:\CocosCreator\resources\app.asar\editor\core\builder.js:1:1647
at Gulp.doneCallback (D:\CocosCreator\resources\app.asar\editor\core\gulp-build.js:1:9307)
at Gulp.Orchestrator.stop (D:\CocosCreator\resources\app.asar\node_modules\orchestrator\index.js:150:9)
at r (D:\CocosCreator\resources\app.asar\editor\core\gulp-build.js:1:3197)
at Object.callback (D:\CocosCreator\resources\app.asar\editor\core\gulp-build.js:1:5062)
at D:\CocosCreator\resources\app.asar\node_modules\async\lib\async.js:906:35
at _arrayEach (D:\CocosCreator\resources\app.asar\node_modules\async\lib\async.js:85:13)
at D:\CocosCreator\resources\app.asar\node_modules\async\lib\async.js:898:17
at D:\CocosCreator\resources\app.asar\node_modules\async\lib\async.js:44:16

TestProject.zip (345.2 KB)

py版本换成2.7.5或者2.7.7试试看

抱歉使用 1.1.3 和 1.2 都未能重现你的报错信息。

两个版本的Python我都换了,依然有这个问题。

我现在用的1.2 rc3 之前的版本我也没出 但是具体是从哪个版本开始的我没太在意 很好构建 平时都是在web平台测试的

删除build文件夹重新构建试试看?

执行命令出错,返回值:1。查看日志文件 C:\Users\Administrator/.cocos\cocos.log

文件内容如下:
Input file: F:\GitHub\TestProject\build\jsb-default\src\project.js
Compiling …
Error! SyntaxError: unterminated string literal
Compiled F:\GitHub\TestProject\build\jsb-default\src\project.js fails!

新建项目或者构建官方范例时会这样吗?
web 平台不会这样?

web平台没这个 只在我构建Android的时候才出的
新建的不会 我这里面有用到一个npm 模块 但是在这个模块我从你们出1.0之前就已经开始使用了。只是在最近才突然出现构建报这个错误。

使用的npm模块在我上传的示例工程里面有。

**这个是我示例工程的全部代码:**这个工程就是新建了一个hello world项目

var cppMsg = require(‘cppmsg’).msg;

//测试定义
var TestStruct = new cppMsg([
[‘cbData’, ‘uint8’],
[‘wData’, ‘uint16’],
[‘dwData’, ‘uint32’],
]);

cc.Class({
extends: cc.Component,

properties: {
    label: {
        default: null,
        type: cc.Label
    },
    text: 'Hello, World!'
},

// use this for initialization
onLoad: function () {
    this.label.string = this.text;
},

// called every frame
update: function (dt) {

},

});

自己顶起来。

这个问题我又试了下,发布为web平台没有问题。发布为Android版本 如果带调试也没问题。但是把调试选项去掉,问题就来了。

问题重现条件 使用了iconv-lite必然到时Android版本发布构建失败

新建hello world工程

全部代码如下:

var iconv = require(‘iconv-lite’);

cc.Class({
extends: cc.Component,

properties: {
    label: {
        default: null,
        type: cc.Label
    },
    text: 'Hello, World!'
},

// use this for initialization
onLoad: function () {
    this.label.string = this.text;
},

// called every frame
update: function (dt) {

},

});

你好,按照你说的方法,我们还是不能重现。不过从报错信息来看,很有可能是 npm 包的兼容性引起的。建议不要使用 npm 来安装 iconv-lite,而是直接将 iconv-lite 导入为插件,具体做法请参考 http://www.cocos.com/docs/creator/scripting/plugin-scripts.html

楼主这个问题解决了吗?