本来高高兴兴的想将自己写的一个小游戏上传到微信小游戏上,却因为一个低级的错误浪费了我大半天时间。在LayaIED打包出微信项目之后,在本机浏览器、在手机的浏览器、微信Web开发者工具上都能正常运行,但是一到了真机调试就炸了。
如下图:

然后我就看了打包出来的wxgame文件夹目录下的文件,发现有Game.json,我还在奇怪为啥是Game.json而不是game.json呢,我就索性将其改为game.json

再次点击真机调试上传文件,碰巧的是,这次还真上传成功,以为可以了,没想到扫码测试时,出现如下错误 fail to load Game.scene

接下来就凌乱了,各种重新发布、更改发布方式、更换微信Web开发者工具版本、更换LayaAirIDE版本、查各种文档、问社区、问度娘。。。始终无结果,看到微信文档里有提到如下图:

我更慌了,明明文件我都有呀,咋就不行,最终我发布了LayaAirIDE中的示例,在微信真机调试时发现可以正常运行,接着我再去对比我自己项目发布出来的文件,发现在game.json文件中,我的内容是描述LayaBox中Scene的内容,而示例中的game.json是描述关于微信的配置信息,


这时我才恍然大悟,原来我在编辑场景时把文件名命名为Game.scene,在导出资源时,LayaAirIDE会生成Game.json,其实也真凑巧,我的场景文件没有放在一个新命名的文件夹下,而是直接放在主目录下,

因此在导出资源后Game.json是bin文件夹下的子文件,而发布微信项目时,也是发布bin这个资源文件夹,同时会在改目录下生成game.json文件,很不幸game.json文件被Game.json文件覆盖掉了,所以才会出现以上我所说的情况。
所以最终的解决方法是将Game.scene重命名,或者将其放在一个文件夹里面,就能正常了。
我真的是too young too sample,and too stupid。。。居然忘了场景文件会生成game.json。
建议LayaBox官方能够在编辑器这方面提供类似这样的提示,让我们这些新手少跳一些坑。
网友评论