cocos2d-x线上部分机型报错Faile to open comm file(/system/build.prop)

公司上线了一款游戏。用的是cocos2d-x 3.12 lua 开发,上线后崩溃率大概在2%。
排除不支持的过低版本机型

其中大部分机型崩溃集中在。Faile to open comm file(/system/build.prop)这个错误。
下面贴出崩溃堆栈
1 #00 pc 00ae8e64 /data/app/com.droidhang.dr2.gp-tPGwJW_d5C0kN5kqnG44NA==/lib/arm/libcocos2dlua.so (cocos2d::Texture2D::updateWithData(void const*, int, int, int, int)+4) [armeabi-v7a]
2 java:
3 org.cocos2dx.lib.Cocos2dxRenderer.nativeRender(Native Method)
4 org.cocos2dx.lib.Cocos2dxRenderer.onDrawFrame(Cocos2dxRenderer.java:135)
5 android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1571)
6 android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)

此外还有崩溃的lua日志监控
16207-06 10:49:38.068 19769 29402 D cocos2d : FileUtils::getContents(assets): assets/res/texture/figh/dgNumber.png
16307-06 10:49:38.068 19769 29402 D cocos2d : EncryptUtil::decrypt signSize 7
16407-06 10:49:38.069 19769 29402 D cocos2d : FileUtils::getContents(assets): assets/res/texture/figh/enCounter.png
16507-06 10:49:38.070 19769 29402 D cocos2d : EncryptUtil::decrypt signSize 7
16607-06 10:49:38.070 19769 29402 D cocos2d : FileUtils::getContents(assets): assets/res/texture/icon/buff/318.png
16707-06 10:49:38.070 19769 29402 D cocos2d : EncryptUtil::decrypt signSize 7
16807-06 10:49:38.070 19769 29402 D cocos2d : reload shader onRenderRecreated
16907-06 10:49:38.070 19769 29402 D cocos2d : FileUtils::getContents(assets): assets/src/gk/res/shader/NoMvp.vsh
17007-06 10:49:38.070 19769 29402 D cocos2d : FileUtils::getContents(assets): assets/src/gk/res/shader/Freeze.fsh
17107-06 10:49:38.071 19769 29402 D cocos2d : FileUtils::getContents(assets): assets/src/gk/res/shader/NoMvp.vsh
17207-06 10:49:38.071 19769 29402 D cocos2d : FileUtils::getContents(assets): assets/src/gk/res/shader/Old.fsh
17307-06 10:49:38.079 19769 29402 E cocos2d : onSurfaceChanged, width = 2160, height = 1080, landscape = true
17407-06 10:49:38.080 19769 29402 E cocos2d : onSurfaceChanged, did!
17507-06 10:49:38.098 19769 29402 I MediaPlayer: start
17607-06 10:49:38.121 19769 29402 E CrashReport-Native: Faile to open comm file(/system/build.prop)
17707-06 10:49:38.240 29424 29424 W Zygote : child_detach_binder close binder

日志里面反馈的位置是我在进入游戏的时候加载资源,
上面那个 E cocos2d : onSurfaceChanged, did!其实是我做的一个正常打印,只是为了醒目用的log.e 具体代码如下

上面部分执行完成后,就应该进入游戏,开始音频的播放的MediaPlayer: start。。再后面就崩溃在了这个地方 CrashReport-Native: Faile to open comm file(/system/build.prop)
翻找资料没有发现有用的信息。。请各位大大帮忙看看

请问楼主有解决吗?奔溃几率不大,但是很烦

楼主解决了吗

CrashReport-Native: Faile to open comm file(/system/build.prop)
我bugly也是这个错误

Faile to open comm file(/system/build.prop) 这个是什么原因,我的闪退也是如此

请问是接入了微信sdk?我们这边接入微信sdk,在登录成功后返回会偶尔出这个问题(只有机型是华为,android9.0以上会出)

楼主有解决吗?bugly上也报这个错误

我来结个帖,问题没有得到解决

首先这个问题我最后定位还是强杀进程上
updateWithData这个函数是更新纹理数据时候调用的

我对比了我项目在bugly的崩溃报错 和 google后台的崩溃报错
bugly有大量这个报错,所有崩溃的总报错率为 5%
google后台只收少量,所有崩溃的总报错率为0.6%

统计差距非常大,经过分析,这种报错有两种触发情况

情况1:当应用被玩家缩小到后台,安卓手机有自己的机制把应用杀死的时候
有一定几率会出这个错误。bugly会收集这个错误,但google不会。

情况2:当应用那个点在载入图片的时候,因为内存占用过大,导致内存不足崩溃,
有一定几率会出这个错误。bugly会收集这个错误,google也会收集这个错误。

所以解决这个问题的方案一方面是对自己内存进行更妥善的管理
另一方面是在设计初期处理缩小到后台的这种操作
cocos2d-x可以获得缩小到后台的事件,可以考虑进行处理
但我这边没有再处理情况1了。
崩溃报错数据我这边以google的数据为准

以上是个人的分析,不一定代表正确答案,请谨慎采纳

1赞

对了。不一定是缩入后台强杀

还有可能是玩家直接在前台运行,
当前载入图片的时候,这个时机点强杀。
也会出错

我想问一下关于这问题的解决方案是什么,我这边也全部是华为9.0的机型报此问题;

你是用什么收集错误日志的,如果是bugly 他会收集强杀报的崩溃。
用谷歌不会收集。谷歌后台有崩溃率。低于你这类游戏的平均值,就不用太关心

比如说我这个崩溃率是1.1 谷歌类似游戏中间值1.06%。。。其实差距很小。而且因为玩家样本数据量的问题
我觉得这点差异可以忽略。。

如果你高得太多,比如2%,3%那可能要找一下原因

我们也遇到了bugly和firebase数据不一致问题。
bugly后台很多这个错误。firebase很少