在真机部分小米手机中,运行游戏,没报错,没闪退,但是也没有往下面执行代码,这是什么原因

lvyan1994 2018-12-24 11:13:45
最近敲代码发现一个奇怪的问题,同样的代码别的手机好好的,但是有些小米手机却在我运行加载粒子特效的时候就不往下面运行了,那些小米机型都挺新的,系统也是android8.0及以上的。
print("=====lizi1111=====>1")
local lizi = CCParticleSystemQuad:create("lizi.particle")
local kuangSize = self.kuangkuang:getSize()
lizi:setPosition(-size.width/2.0, size.height/2.0)
local mb1 = CCMoveTo:create(time, cc.p(-kuangSize.width/2.0, kuangSize.height/2.0))
local mb2 = CCMoveTo:create(time, cc.p(kuangSize.width/2.0, kuangSize.height/2.0))
local mb3 = CCMoveTo:create(time, cc.p(kuangSize.width/2.0, -kuangSize.height/2.0))
local mb4 = CCMoveTo:create(time, cc.p(-kuangSize.width/2.0, -kuangSize.height/2.0))
local seq = transition.sequence({mb1, mb2, mb3, mb4})
lizi:runAction(CCRepeatForever:create(seq))
lizi:stopSystem()
self.kuangkuang:addNode(lizi)
print("=====lizi2222=====>2")
日志就打印到“=====lizi1111=====>1”这个,2没有打印,那么应该就是中间这段出问题了,可是日志导出来发现后面也没有打印报错,我本来在想如果没有报错会不会是android层报错了,Android层报错应该就是资源问题,奇怪的就是我把资源删了,它会自动读apk里面的资源,也能运行;我把资源弄坏了,发现会闪退;都不会出现这种既不报错、又不闪退的情况,所以想请教各位大神,还有什么情况我没考虑到的吗,能提供一些思路给我吗
...全文
267 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvyan1994 2018-12-26
  • 打赏
  • 举报
回复
引用 4 楼 幽幽有悠悠呦 的回复:
[quote=引用 3 楼 lvyan1994 的回复:]
不对不对,捕获是为了不报错或者让程序能够正常运行下去,现在我是已经知道这里有异常了,但问题是不知道是什么异常呢,我在真机中试过把这个资源弄坏是会闪退的,但是不明白某些小米手机为什么运行到这里不运行下去也不闪退也不报错,界面也没卡死,能做别的操作


既然知道有异常,而且不知道有什么异常。不应该是直接捕获代表异常的基类。然后打印出来才能知道是什么异常?如果连捕获都不做。那么岂不是只能靠猜测?捕获操作是免不了的。至少需要打印才能明确知道是什么异常的吧?[/quote]

我试了下捕获这个异常,并没有捕获到,我用的是cocos2dx+lua,CCParticleSystemQuad:create("lizi.particle")具体是c++实现的,我只是在lua这边调用了,可能是那边直接捕获了异常在我这里之前所以我这里就没有异常返回了,但是我发现重新打的包什么没改的情况下又没有这个问题了
谢谢幽幽有悠悠呦的回帮助
幽幽有悠悠呦 2018-12-25
  • 打赏
  • 举报
回复
引用 3 楼 lvyan1994 的回复:
不对不对,捕获是为了不报错或者让程序能够正常运行下去,现在我是已经知道这里有异常了,但问题是不知道是什么异常呢,我在真机中试过把这个资源弄坏是会闪退的,但是不明白某些小米手机为什么运行到这里不运行下去也不闪退也不报错,界面也没卡死,能做别的操作


既然知道有异常,而且不知道有什么异常。不应该是直接捕获代表异常的基类。然后打印出来才能知道是什么异常?如果连捕获都不做。那么岂不是只能靠猜测?捕获操作是免不了的。至少需要打印才能明确知道是什么异常的吧?
lvyan1994 2018-12-25
  • 打赏
  • 举报
回复
不对不对,捕获是为了不报错或者让程序能够正常运行下去,现在我是已经知道这里有异常了,但问题是不知道是什么异常呢,我在真机中试过把这个资源弄坏是会闪退的,但是不明白某些小米手机为什么运行到这里不运行下去也不闪退也不报错,界面也没卡死,能做别的操作
lvyan1994 2018-12-25
  • 打赏
  • 举报
回复
诶,你说的挺有道理的,我试试
幽幽有悠悠呦 2018-12-24
  • 打赏
  • 举报
回复
首先,程序是顺序执行的,正常情况下不可能执行一半然后不执行后面的代码。如果出现这个情况,必然是出现了异常。 但是为什么异常没有报错打印出来,那么很显然是被捕获了异常了。也许捕获这个异常的并不是你自己写的代码。例如第三方插件中内部捕获了,但是没做任何处理,相当于被拦截了。 想要得到这个异常原始问题,只要在你的代码执行期间,自己先捕获一次。那么异常处理机制就会先找到你。毕竟异常也是最靠近出错代码的捕获那边先生效。只要你捕获的优先级比当前被捕获的高就行了

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧