关于2.0.7、2.0.8、2.0.9版本,cc.game.restart之后anysdk未定义的问题

  • Creator 版本:2.0.7、2.0.8、2.0.9

  • 目标平台:iOS和安卓

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

  • 重现方式:cc.game.restart之后

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

  • 出现概率:必现

  • 额外线索: 猜测是cc.game.restart之后,anysdk被移除了

这是我2.0.7发的帖子
https://forum.cocos.com/t/2-0-7-anysdk-app/72556/7

这是论坛的小伙伴们发的帖子
https://forum.cocos.com/t/cocoscreator2-0-8-bug-cc-game-restart-anysdk-is-not-defined/73595/4

希望尽快帮忙找个临时解决方案,现在卡着发布不了。感谢引擎团队

anysdk注册到虚拟机的代码在restart后没有调用呗,你修改一下不就好啦

哥们请问,怎么加?


我这样子加,还是一样报错

你倒是修改一下,给我们看看啊,大神

查找anysdk相关的bind代码,就是那一堆se->addRegisterCallback里面,确定注册anysdk的代码是否执行。

无奈,208的构建,连anysdk的选项都没有了


我生成的工程里面没有anysdk代码。服务选项卡关联不了。
前面的说法是基于1.9.2的经验。

哥们,我2.0.6还用的好好的,就是2.0.7之后,引擎把anysdk放到服务面板之后,cc.game.restart之后就找不到anysdk了。

哥们就是这样的报错,ERROR: ReferenceError: Can’t find variable: anysdk, location: src/jsb_anysdk.98734.js:26:7,

我208 现在搞不出anysdk工程了,无法看相关代码了。

哥们,这个我肯定开了,我第一次进app是没有问题的,微信登录,微信分享都能正常用,就是cc.game.restart之后,就报这个错

调用 restart 之前有 anysdk 这个变量吗

有的,我刚启动app,是可以进行微信登录,微信分享的,restart之后就找不到anysdk了

尝试在 AppDelegate.cpp 文件做如下修改:
USING_NS_CC; 上方插入以下代码:

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS) && PACKAGE_AS
#include "SDKManager.h"
#endif

se->start(); 上方插入以下代码:

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS) && PACKAGE_AS
   SDKManager::getInstance()->loadAllPlugins();
#endif

看看是否生效

1赞

还是不行,我们现在在尝试,照着2.0.6构建出来的改

如果你们只有微信,手动接一下更快。。。

插入代码的位置是指定的位置吗

还有极光啊,闪退分析啥的,不可能手动接入的,项目好几个,手动接入,工作量太大了


是按照你说的方法加的

放到 se::ScriptEngine 下方呢

目前确认的问题是调用 cc.game.restart() 这个方法之后,重新启动了 JS VM,导致 JSB 注册的 js 变量丢失,目前引擎组正在寻找新的解决方案