开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1908|回复: 12
收起左侧

[易语言] 极少部分用户,软件崩溃要咋办。

[复制链接]
结帖率:90% (110/122)
发表于 2022-3-25 16:34:10 | 显示全部楼层 |阅读模式   广东省潮州市
47精币
软件地址:https://mod.3dmgame.com/mod/181318
软件90%的用户都可以正常使用,唯独有极少部分用户一进入主界面就会崩溃,头都想破了,想不出是什么地方问题。目前不知道崩溃原因,主窗口下面的代码也都是一些,创建组件,赋值图片,修改背景色之类的代码。
1.png
2.png

  
如果真 (超级按钮_取消.标题 = “取消”)
线程_销毁 (线程句柄)
程序_延时 (100, )
写日志 (“手动停止程序”, #日志类型_信息, , , , )
停止网关 ()
_初始化.销毁 ()
返回 ()
如果真 (超级按钮_取消.标题 = “进入”)
如果真 (线程_取状态 (线程句柄) = 1)
线程_销毁 (线程句柄)
写日志 (“开始进入主程序”, #日志类型_信息, , , , )
程序_延时 (100, )
载入 (窗口_主程序, , )
返回 ()
如果真 (超级按钮_取消.标题 = “重试”)
线程池.关闭 ()
网关.停止 ()
_初始化.超级按钮_取消.禁止 = 真
线程_销毁 (线程句柄)
程序_延时 (100, )
线程句柄 = 线程_启动 (&初始化, , )


i支持库列表   支持库注释   
iext2扩展界面支持库二


上面这段是 操作初始化窗口的代码。这里并没有什么问题,所有用户都可以正常初始化到最后一步,就是后面进入到 主界面后 直接无响应了
主窗口下的代码也只是一些 给组件赋予背景颜色,调整尺寸,动态创建组件,这些代码。实在想不明白,到底是哪里出了问题。而且还只是在极少部分人里出现,出现的问题还都是无响应。
当主窗口出现的时候,所有的UI都是创建好的。然后就无响应了。

下面这段 是初始化线程的代码
  
子程序名返回值类型公开备 注
初始化 
变量名类 型静态数组备 注
网址文本型 
返回值文本型 
JSON类_json 
是否成功逻辑型 
APPID文本型 
局_POST类_POST数据类 
更新返回值文本型 
Name文本型 
Pass文本型 
局_URL文本型 
局_Ver文本型 
连接次数 = 连接次数 + 1
_初始化.标签2.标题 = “正在启动程序,请稍等..”
如果真 (配置.日志标识 = “”)
配置.日志标识 = 时间_到文本 (取现行时间 (), 0, , )
如果真 (日志池.创建 (配置.日志标识))
配置.日志标识 = “”
_初始化.标签1.标题 = “日志池创建失败!”
初始化_重试 ()
返回 ()


写日志 (“正在进行[ ”到文本 (连接次数)“ ]次连接”, #日志类型_信息, , , , )
写日志 (“正在初始化..”, #日志类型_信息, , , , )
_初始化.标签1.标题 = “正在初始化..”
如果真 (线程池.启动 (, , , ))
写日志 (“线程池创建失败!”, , 真, _初始化.标签1, #红色, )
初始化_重试 ()
返回 ()
APPID = “1001”
网址 = “http://api.s.igamep.com:8080/api”
写日志 (“请求连接信息..”, #日志类型_信息, , , , )
返回值 = _AES解密 (到文本 (网页_访问 (网址, 1, “Type=Getip&PID=” + APPID, , , , , , , , , , )))
如果真 (返回值_是否成功 (返回值))
写日志 (“服务器连接失败!”, , 真, _初始化.标签1, #红色, )
初始化_重试 ()
返回 ()
如果真 (Arai_初始化 () = 0)
写日志 (“下载引擎初始化 - 失败..”, , 真, _初始化.标签1, #红色, )
初始化_重试 ()
返回 ()

写日志 (“下载引擎初始化 - 成功..”, , 真, _初始化.标签1, , 1)
程序_延时 (500, )
写日志 (“开始检测更新..”, #日志类型_信息, 真, _初始化.标签1, , 1)
JSON.解析 (返回值, 真, )
配置.IP = JSON.取通用属性 (“data[0].IP”, )
配置.TcpPort = 到整数 (JSON.取通用属性 (“data[0].tcpport”, ))
配置.httpPort = 到整数 (JSON.取通用属性 (“data[0].httpport”, ))
配置.通信秘钥 = 到整数 (JSON.取通用属性 (“data[0].appKey”, ))
配置.应用名称 = JSON.取通用属性 (“data[0].Name”, )
配置.应用版本 = JSON.取通用属性 (“data[0].Ver”, )
配置.更新文件列表 = JSON.取通用属性 (“data[0].FileCode”, )
_初始化.标题 = 配置.应用名称
_初始化.标签_标题.标题 = 配置.应用名称
如果真 (配置.应用版本 = “”)
写日志 (“检查更新失败.”, , 真, _初始化.标签1, #红色, )
初始化_重试 ()
返回 ()

如果 (配置.应用版本 = 配置.本地版本)
写日志 (“您当前是最新版本..”, #日志类型_信息, 真, _初始化.标签1, , 1)
_初始化.标签2.标题 = “您当前是最新版本..”
目录_删除目录 (取运行目录 ()“\Update”)
目录_创建 (取运行目录 ()“\Update”)

写日志 (“发现新版本,即将开始更新..”, #日志类型_信息, 真, _初始化.标签1, , 1)
_初始化.标签2.标题 = “如果更新失败,请前往 3DMMOD站 重新下载覆盖”
写日志 (“即将开始更新.. 3”, #日志类型_信息, 真, _初始化.标签1, , 1)
程序_延时 (1000, )
写日志 (“即将开始更新.. 2”, #日志类型_信息, 真, _初始化.标签1, , 1)
程序_延时 (1000, )
写日志 (“即将开始更新.. 1”, #日志类型_信息, 真, _初始化.标签1, , 1)
程序_延时 (1000, )
_解析更新 (配置.更新文件列表, 局_URL, 局_Ver)
_初始化.标签2.标题 = “您当前是:” + 配置.本地版本 + “ 最新版:” + 局_Ver
写日志 (更新程序 (配置.更新文件列表), #日志类型_信息, 真, _初始化.标签1, , 1)
程序_延时 (5, 1)

调试输出 (配置.IP, 配置.TcpPort, 配置.httpPort, 配置.通信秘钥, 配置.应用名称, 配置.应用版本)
写日志 (“正在连接服务器..[ ” + 配置.应用名称 + “]”, , 真, _初始化.标签1, , 3)
如果 (设置.离线模式 = “1”)
写日志 (“正在使用离线模式进入”, , 真, _初始化.标签1, , 3)
是否成功 = 网关.启动 (配置.IP, 配置.TcpPort, 假, &客户端_事件_数据到达, &客户端_事件_关闭, &客户端_事件_连接, )
如果真 (是否成功 = )
写日志 (“服务器连接失败..[ ” + 配置.应用名称 + “]”, , 真, _初始化.标签1, #红色, )
初始化_重试 ()
如果 (连接次数 > 2)
判断 (提示框 (“您已经多次连接失败,是否使用离线模式进入?”, #警告图标#是否钮, “离线模式”, , 10000)#是钮 )
设置.离线模式 = “1”
返回 ()

返回 ()



' 请求界面布局
局_POST.清空 ()
局_POST.添加 (“Type”, #界面布局, )
如果 (设置.离线模式 = “1”)
返回值 = 到文本 (读入文件 (取运行目录 ()“\offlinemode\ui.data”))
如果真 (返回值 = “”)
返回值 = #离线_界面布局

返回值 = HTTP_发送请求 (局_POST.获取Post数据 (), 真, “api”)

解析_界面布局 (返回值)
局_POST.清空 ()
局_POST.添加 (“Type”, #游戏列表, )
如果 (设置.离线模式 = “1”)
返回值 = 到文本 (读入文件 (取运行目录 ()“\offlinemode\game.data”))
如果真 (返回值 = “”)
写日志 (“请先使用在线模式成功初始化一次!”, , 真, _初始化.标签1, #红色, )
程序_延时 (2000, )
设置.离线模式 = “0”
写配置项 (取特定目录 (1)“igamep\config.ini”, “config”, “Offline”, “0”)
写日志 (“已为您转到在线模式 ,请重试!!”, , 真, _初始化.标签1, , 1)
初始化_重试 ()
返回 ()

返回值 = HTTP_发送请求 (局_POST.获取Post数据 (), 真, “api”)

如果真 (返回值_是否成功 (返回值))
写日志 (“加载游戏信息失败”, , 真, _初始化.标签1, #红色, )
初始化_重试 ()
返回 ()
写到文件 (取运行目录 ()“\offlinemode\game.data”, 到字节集 (返回值))
配置.推送信息.信息 = 查询_公告 ()
推送信息解析 (配置.推送信息.信息)
配置.游戏列表 = 返回值
判断 (_游戏列表. (返回值))
写日志 (“游戏载入 - 成功..”, , 真, _初始化.标签1, , 1)
写日志 (“游戏载入 - 失败..”, , 真, _初始化.标签1, #红色, )
初始化_重试 ()
返回 ()

如果真 (_已访问列表.创建 ( #文本型, #文本型, , , , , ))
写日志 (“哈希表初始化 - 失败..”, , 真, _初始化.标签1, #红色, )
初始化_重试 ()
返回 ()

如果 (初始化_7z ())
写日志 (“7z加载 - 失败..”, , 真, _初始化.标签1, #红色, )
写日志 (“7z加载 - 成功..”, , 真, _初始化.标签1, #墨绿, )

写日志 (“正在载入图片..”, , 真, _初始化.标签1, , 1)
如果 (设置.离线模式 = “1”)
返回值 = 到文本 (读入文件 (取运行目录 ()“\offlinemode\ad.data”))
如果真 (返回值 = “”)
写日志 (“离线模式 - 取消载入ad ”, , 真, _初始化.标签1, #红色, )

返回值 = 查询_广告列表 ()
如果真 (返回值 ≠ “”)
写到文件 (取运行目录 ()“\offlinemode\ad.data”, 到字节集 (返回值))
JSON.解析 (返回值, , )
_ad [1].Name = JSON.取通用属性 (“data[0].Name”, )
_ad [1].URL = JSON.取通用属性 (“data[0].url”, )
_ad [1].IMG = HTTP读文件 (JSON.取通用属性 (“data[0].img”, ))
_ad [2].Name = JSON.取通用属性 (“data[1].Name”, )
_ad [2].URL = JSON.取通用属性 (“data[1].url”, )
_ad [2].IMG = HTTP读文件 (JSON.取通用属性 (“data[1].img”, ))

写日志 (“正在配置游戏信息..”, , 真, _初始化.标签1, , 1)
配置.默认选择ID = 到整数 (查询_默认ID ())
_插件管理.打开 ()
_配置.初始化 ()
_配置.读取默认游戏 (配置.游戏ID, 配置.当前游戏名, 配置.导航ID)
_初始化.超级按钮_取消.禁止 = 假
写日志 (“您当前是最新版本..”, #日志类型_信息, 真, _初始化.标签1, , 1)
如果真 (设置.自动登录 = “1”)
写日志 (“开始登录您的账户..”, #日志类型_信息, 真, _初始化.标签1, , 1)
Name = 读配置项 (取特定目录 (1)“igamep\mod_user.igamep”, “user”, “name”, “请输入手机号/论坛账号”)
Pass = 文本_解密 (读配置项 (取特定目录 (1)“igamep\mod_user.igamep”, “user”, “pass”, “请输入密码”), “23544asd4asd87qwe921zxc”)
判断 (设置.离线模式 = “1”)
_用户信息.是否登录 = 真
写日志 (“离线登录成功..”, #日志类型_信息, 真, _初始化.标签1, , 1)
返回值 = _模组.登录 (Name, Pass, , )
判断 (返回值 = “ok”)
写日志 (“自动登录成功..”, #日志类型_信息, 真, _初始化.标签1, , 1)
写日志 (返回值, #日志类型_信息, 真, _初始化.标签1, , 1)


功能_启动程序_初始化 ()
Gdiplus初始化 ()
写日志 (“初始化成功..[ ” + 配置.应用名称 + “]”, , 假, , , 1)
_初始化.超级按钮_取消.标题 = “进入”
_初始化.标签2.标题 = “初始化成功..请点击 [ 进入 ]”


i支持库列表   支持库注释   
spec特殊功能支持库
shell操作系统界面功能支持库
internet互联网支持库
iext2扩展界面支持库二

在下面这段就是主窗口创建完毕后的代码









回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值
结帖率:89% (83/93)

签到天数: 12 天

发表于 2022-3-25 17:19:43 | 显示全部楼层   四川省南充市
最好的办法在出问题的机子上面一步步调试看结果,崩溃点就找到了也最快速的
回复

使用道具 举报

结帖率:78% (18/23)

签到天数: 2 天

发表于 2022-3-25 17:24:11 | 显示全部楼层   浙江省嘉兴市
让对方重装操作系统为先。
回复

使用道具 举报

结帖率:100% (18/18)

签到天数: 9 天

发表于 2022-3-25 17:25:27 | 显示全部楼层   福建省泉州市
最好是在出问题的机子上面一步步调试   
也可以要一份对方系统的备份    自己创建镜像系统   模拟相应系统环境
或者整体代码每一步添加日志输出,软件崩溃的用户运行一次崩溃程序后,将日志传回   根据崩溃断点检查

你这代码太长,一时半会没法帮你找出来
回复

使用道具 举报

结帖率:90% (110/122)

签到天数: 9 天

 楼主| 发表于 2022-3-25 17:45:57 | 显示全部楼层   广东省潮州市
一路生花 发表于 2022-3-25 17:25
最好是在出问题的机子上面一步步调试   
也可以要一份对方系统的备份    自己创建镜像系统   模拟相应系统 ...

头疼,只能等个异常用户,看看能不能帮忙调试了
回复

使用道具 举报

结帖率:100% (5/5)

签到天数: 9 天

发表于 2022-3-25 17:48:43 | 显示全部楼层   浙江省温州市
加入异常捕获,如果能捕获到一般就知问题代码位置了
回复

使用道具 举报

结帖率:90% (9/10)

签到天数: 1 天

发表于 2022-3-25 17:50:22 | 显示全部楼层   广东省广州市
俘获闪退的时候到哪一步代码啊
回复

使用道具 举报

结帖率:90% (110/122)

签到天数: 9 天

 楼主| 发表于 2022-3-25 17:51:26 | 显示全部楼层   广东省潮州市
飞羽软件 发表于 2022-3-25 17:48
加入异常捕获,如果能捕获到一般就知问题代码位置了

有推荐的异常捕获模块或者库吗
回复

使用道具 举报

结帖率:90% (110/122)

签到天数: 9 天

 楼主| 发表于 2022-3-25 17:52:14 | 显示全部楼层   广东省潮州市
伊银 发表于 2022-3-25 17:50
俘获闪退的时候到哪一步代码啊

因为遇到的用户太少了,找的难度也很大
回复

使用道具 举报

结帖率:100% (9/9)
发表于 2022-3-25 18:01:40 | 显示全部楼层   山东省济南市
让对方重装操作系统为先。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /2 下一条

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表