在2.4.15版本中我使用jsb.reflection.callstaticMethod来实现游戏侧和鸿蒙的交互,测试都是通的,但目前有个问题,当我在鸿蒙测修改函数名称的时候,在游戏中再调用就找不到了,哪怕我把整个鸿蒙项目都删除掉也是找不到,游戏侧改回之前的函数名就可以,这种缓存怎么处理,目前把整个项目都删掉也不行
需要核对下。
现在是我新增函数什么的都可以,但是只要调用之前的函数,哪怕是同名的函数,都会直接执行老的缓存函数去,需要demo的话我提供一下
麻烦提供下demo
harmonySDK.zip (243.4 KB)
这是项目内往鸿蒙的调用,鸿蒙测就一个CocosMessageManager.ets文件,还有build-profile.json5中的导出没有别的
CocosMessageManager.zip (962 字节)
大概流程就是,调用sysnCallMessageToSDKForBack,然后再把这个sysnCallMessageToSDKForBack删了,调testToSDKForBack,这时候日志是调用testToSDKForBack,但实际调用的还是可能上一个函数,我再改sysnCallMessageToSDKForBack函数里的内容也不管用,具体您可以留联系方式或着加我Q771606795
也可以打断点查看,假如我删一个OVER函数之后编译一次,再把OVER加回来,调用这个OVER不会执行我新加回来的,会之前我删除那个OVER函数里的内容
目前核对,2415还未适配jsb.reflection. 有进展会反馈在此帖子。
适配了的,我这几个项目都是升级到2.4.15,
https://docs.cocos.com/creator/2.4/manual/zh/advanced-topics/arkts-reflection.html
我这边几个项目都准备上线了,只是这个缓存问题会导致我们没法去做自动化,很容易访问旧缓存,这样我们还得去改SDK的内容非常麻烦
从dashboard中下载的2.4.15是已经适配jsb.reflection. 进一步排查中。
有结果了不,这个问题会让游戏和鸿蒙的交互经常出问题,出现问题只能换函数名很不方便
我这边核对如果函数名太长就会报”callbackValue returns incorrect value type“, 从sysnCallMessageToSDKForBack一直修改到CallMessageToSDKFor,才能成功。你那再核对看看。
