jsb自动绑定不成功,命名空间在项目里面不识别

jsb自动绑定是在构建项目里面还是在creator内包引擎里面。要是在项目里面没有对应的python工具。我是在creator引擎内包里面做的,但是cocos编译配置的时候没找到jsb_boot.js.还有对应的Android.mk。我看教程是1build/jsb-default/frameworks/cocos2d-x/cocos/Android.mk 2build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/proj.android/Android.mk 3build/jsb-default/frameworks/runtime-src/Classes/jsb_module_register.cpp
4build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/script/jsb_boot.js

我想说这个教程是不是旧的失效了。目前无论是引擎还是构建包里面都找不到对应目录的东西。请官方看到能帮忙解决一下。我其他的都做了。然后在项目里面绑定的abc命名空间不识别

你看的哪个教程?链接发给我看看。

https://docs.cocos.com/creator/manual/zh/advanced-topics/jsb-auto-binding.html
这是连接,我用的是最新的引擎2.3.3做的绑定。还有请教问一下是引擎绑定还是构建包里面做绑定

参考教程,里面是对 构建之后的包进行的修改。

目前这个文档在 2.3.3 版本的还有待我近一步验证。有结果我会过来回复。

好的。那我试试其他版本的构建看看。行不行吧先。有结果通知我一声哈,感谢:pray:。这个问题已经踩三天了:sob:

我自己又看了2.2.0和2.3.0绑定其实都差不多,构建里有目录都找不到对应的genbindings.py工具,build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/proj.android/Android.mk 和 build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/script/jsb_boot.js。然后最具体的问题是我绑定是不是不正确,因为按教程我的abc命名空间还是识别不了。

问题解决了吗,我现在用creator2.4.0 版本也是这个问题,按照教程生成了三个文件,但是编译环境找不到文件配置,
H5版本abc命名空间无法识别

H5版本???jsb是绑定C++的,H5能支持???

我有个接口是用c++实现的,不想单独针对H5版本修改,难道H5版本的不能调用C++?

这个C++接口实现了一些比较复杂的计算,很难转换成js,所以想通过jsb绑定直接调用

有了Cocos 确实降低了做游戏的编程门槛

这些路径在构建后的工程中也对应不上,到底应该改哪些文件呢?
小白完全不懂,求大神指教!

我的问题终于解决了,反省一下,只在android中验证了:

  1. 马虎是罪魁祸首,几处书写马虎导致忽略了主要问题
  2. 文档描述路径缺少与新版本有出入,这里配置如下:
    a.按照文档操作生成3个文件,这个没有问题
    b. 配置Android.mk
    我的路径是:CocosDashboard_1.0.7\resources.editors\Creator\2.4.0\resources\cocos2d-x\cocos
    打开Android.mk 添加如下,注意书写位置不要写到一些条件分支中了,只需要修改这一个mk就好了(这里我为了简单把教程中的CCIABCJSBBridgeIml.h 删除了,改了一下ABCJSBBridge类只是简单打印一句话):

LOCAL_SRC_FILES +=
test/ABCJSBBridge.cpp
scripting/js-bindings/auto/jsb_cocos2dx_test_auto.cpp

c. 按照教程修改jsb_module_register.cpp,我的路径在:
CocosDashboard_1.0.7\resources.editors\Creator\2.4.0\resources\cocos2d-x\cocos\scripting\js-bindings\manual\

这里要注意,修改完成后,在creator中构建工程,前要将之前的工程删除,不然构建的工程中的jsb_module_register.cpp仍然是修改之前的,或者直接在构建后的工程中修改,这个坑了我很长时间

d. 不用理会 jsb_boot.js, js中直接 这样用,abc.JSBBridge.getInstance().abcLog(“啊哈哈!”);就可以了

1赞

您好,如果要想像creator官方提供的jsb对象一样用,是不是需要重新编译整个creator工程,对应的都需要编译哪些呢?目前我能编译的就只有engine和libcocos2d

哥们能不能远程帮我看看