应用程序可以在模拟器上运行,但不能在android上运行



我在android手机上测试了我的应用程序,它在播放过程中停止了,当它要改变场景时停止了。(它可以在模拟器上运行。)我使用以下指令调试它:http://coronalabs.com/blog/2013/07/09/tutorial-basic-debugging/

这是它在cmd中给我的。

beginning of /dev/log/main
.....
I/Corona <24200>:cannonCharge   
I/Corona <24200>:shot
I/Corona <24200>:event listener   
I/Corona <24200>:Ball is colliding   
I/Corona <24200>:Before changing scene

然后它就停在这里,然后我的手机屏幕上弹出一个窗口说气球游戏已经停止。我认为这部分代码有问题。

   if (event.other == balloons[1])  then
     scene.updateScore()
     print('Ball is colliding')
     balloon1:removeSelf()
     balloon1 = nil
     balloonText1:removeSelf() 
     balloonText1 = nil
     audio.play(pop)
     print('Before changing scene')
     storyboard.gotoScene("correct1", "fade", 1000)
   end
   ...

我想可能是文件名,因为我知道android是大小写敏感的,所以我把所有的文件名都改成了小写。图片显示,所以我不认为有任何问题,但也检查了以防万一。到目前为止,我不知道我还可以尝试什么,有什么建议吗?我试着删除一些代码,发现一切正常,直到storyboard。gotoScene("correct1","fade",1000)。我看不出它有什么问题,甚至试图将它与另一个场景"结果"联系起来,这也是相同的结果。

遇到这种情况时,一种很有效的技术是在代码中添加许多print语句,以便您可以找到执行的最后一行。这里你有一个打印语句,在场景进入之前,但除非你有一个之后,没有办法知道它是否挂在那里。

一旦你这样做了,你开始删除代码(注释掉),直到问题消失。问题不一定是挂着的那条线;它很容易出现在之前的行中,甚至是在初始化时完成的一些操作。所以你注释掉大块代码,但保留结构(如所有场景goto),只注释掉音频、按钮(除了触发goto所需的那个)等内容。当代码删除使问题消失时,您至少有一些东西可以查看(错误的配置值等)。

上面的代码很好,我找不到任何错误,所以上传代码的其他部分,以便我可以检查它。一般建议是确保使用正确的文件名和场景名称。

相关内容

最新更新