应用程序在模拟器上工作,但不在Android上

时间:2014-03-25 09:17:33

标签: android lua corona corona-storyboard

我在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)。我看不出任何问题,甚至试图将它链接到不同的场景“结果”,这也是相同的结果。

2 个答案:

答案 0 :(得分:1)

当遇到这种情况时,一种运行良好的技术是在代码中添加许多打印语句,以便您可以找到执行的最后一行。在这里你有一个在场景转到之前的打印声明,但除非你有一个之后,没有办法知道它是否挂起。

完成后,您开始删除代码(注释掉)直到问题消失。问题不一定是挂起的线;它可以很容易地在先前的行中,甚至在初始化时完成的事情。所以你注释掉了大块的代码,但是留下了结构(就像所有的场景里面一样),只是注释掉音频,按钮(除了触发goto所需的那些)等等。当代码删除使问题消失时,你至少要看一些东西(错误的配置值等)。

答案 1 :(得分:0)

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