关于Unity打包apk安卓真机测试闪退的问题解决方案之一_打包的apk不输出unity日志直接闪退-程序员宅基地

技术标签: C#编程语言  

最近项目进入测试阶段,PC版本已经没有任何问题。进入安卓测试阶段。然而,意想不到的是——闪退!闪退!闪退!

网上找了很多解决方案,使用软件跟踪,打印日志,检查是否有空指针等等。

然并卵、、、、

然后就开始了漫长的修改——打包——测试。。。。一下熬到了半夜两点多、、、最终定位到了结构体。

接收服务器信息,我知道的有两种方法,

第一种,是通过结构体,把数据包去掉包头,然后转换成与服务器打包数据时相同数据类型的结构体,通过结构体获取包里的数据;

第二,去掉包头,按照服务器的结构体,依次读取相应长度的数据。比如,int读4字节。

两种方法都各有利弊,转换结构体,可以让我们更直观看到包内数据的真面目。因为我们服务器端是C++写的,在数据传输的时候,我和服务器商量好,就1字节对齐。测试过程中,感觉C和C#貌似都有严格的数据对齐的限制。测试的时候,我们发现,当数据包长度能被4整除的时候,这个包就没有问题,否则就会闪退。另外,C#在定义结构体的时候加了,StructLayout这个限定声明,这个声明是什么东西,其实我并没搞懂,只是看过大神在声明结构体的时候加上过,逼格很高,就效仿了、、、、嘎嘎嘎、、、

那么接下来,就开始测试字节对齐的BUG,使用了第二种方法,直接从包内读取相应长度,修改、、、、打包、、、测试、、、、通过!!!!!!MMP终于给搞定了。所以说,使用第二种方式,虽然不能直观的看到数据真面目,但是会避免字节对齐的烦恼。

然而,并没有结束、、

那么究竟是不是structlayout这个东东搞的鬼呢?

http://blog.csdn.net/bigpudding24/article/details/50727792

看这个博客,貌似真的是这个家伙搞的鬼,但有待测试。明天测一下。

通过这个文章记录下这个问题,以后再遇到就不迷茫了,也希望给朋友们一个处理闪退的方向。当然,闪退BUG有很多种,能测出来一种是一种!~!!!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_20892335/article/details/79574201

智能推荐

使用curl在命令行中下载文件_bat脚本 curl 下载文件夹下所有文件-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏5次。今天帮同学从一个网站上下载点数据, 但是上面有上百个链接, 一个一个点击下载实在是工作量太大。 于是自己就想找一个命令行下载工具并用Python写一个简单的脚本来替代这些工作。百度了一下, 找到了curlcurl: curl是利用URL语法在命令行方式下工作的文件传输工具。 [百科: http://baike.baidu.com/view/1326315.htm]官网: http:_bat脚本 curl 下载文件夹下所有文件

常用的原型开发工具-程序员宅基地

文章浏览阅读67次。1、Axure RP(Rapid Prototyping)Axure(读音为Ack-Sure)无疑是目前最受关注的原型开发工具,其能通过组件的方式帮助网站或软件设计师快速建立带有注释的原型(流程图、线框图),并凭借自定义可重用的元件、动态面板以及丰富的script能够建立基本功能或页面逻辑的动态演示文件。Axure借鉴了office的界面,能够让用户快速上手,并且提供了..._程序员原型法常用工具

nuiapp请求网络_uni-app 接口 - 网络请求-程序员宅基地

文章浏览阅读145次。1、 uni.request(OBJECT) 发起网络请求参数名 类型 必填 默认值 说明url String 是 开发者服务器接口地址data Object/String/ArrayBuffer 否 请求的参数header Object 否 设置请求的 header,header 中不能设置 Referer。method String 否 GET (需大写)有效值:OPTIONS, GET...

Vim命令学习参考_hadoop vim是什么操作-程序员宅基地

文章浏览阅读368次。1. 关于Vim1.1 Vim的几种模式2. 启动Vim3. 文档操作4. 光标的移动4.1 基本移动4.2 翻屏4.3 标记5. 插入文本5.1 基本插入5.2 改写插入6. 剪切复制和寄存器6.1 剪切和复制、粘贴6.2 文本对象6.3 寄存器7. 查找与替换7.1 查找7.2 替换7.3 正则表达式8. 排版8.1 基本排版8..._hadoop vim是什么操作

应用加速,数字人民币接入多地交通出行场景 | 产业区块链发展周报-程序员宅基地

文章浏览阅读3.1k次。摘要产业动态:微众银行多方大数据隐私计算平台通过信通院权威评测欧洲最大移动运营商沃达丰将为AI智能协议移动终端提供移动通信服务汇丰银行加入迪拜经济的阿联酋KYC区块链平台重庆市先进区块链研..._交通联合 小额支付

随便推点

TCPIP详解卷1第3章IP网际协议3.2IP首部3.3IP路由选择-程序员宅基地

文章浏览阅读164次。转载于:https://www.cnblogs.com/sunyongjie1984/p/4319969.html

linux which,whereis,locate,find的区别_linux中whereis locate which的区别-程序员宅基地

文章浏览阅读221次。find就不用多说了,就是递归遍历文件夹。which:有时候可能在多个路径下存在相同的命令,该命令可用于查找当前所执行的命令到底是哪一个位置处的命令。whereis:是在数据库中查找文件,在数据库(var/lib/slocate/slocate.db)中查找与文件名相匹配的二进 制文件、源文件和帮助手册文件,使用之前可以使用up..._linux中whereis locate which的区别

olat中解决查看gui_demo源代码异常或debug模式下查看源代码异常_guidemo_main不显示-程序员宅基地

文章浏览阅读1.2k次。出现这种异常是因为没有设置 project.build.home.directory 参数,系统找不到源代码文件的位置。解决办法:1.首先下载源代码,可参考如何下载olat源代码并在eclipse中查看2.在部署的服务中找到 olat.local.properti_guidemo_main不显示

自定义View-Rect和RectF_android根据rect坐标添加控件-程序员宅基地

文章浏览阅读1.4k次。Rect 类定义了一个矩形结构,同样实现了 Parcelable 序列化接口。Rect 类定义了 left、top、right、bottom 四个成员变量,我们需要正确理解这 4 个成员变量的作用:left:矩形左边线条离 y 轴的距离top:矩形上面线条离 x 轴的距离right:矩形右边线条离 y 轴的距离bottom:矩形底部线条离 x 轴的距离矩形是一种非常常见的图_android根据rect坐标添加控件

CCS5导入工程时出错:Issues that may require your attention were encountered while importing the projects-程序员宅基地

文章浏览阅读2.4w次,点赞10次,收藏27次。1.出错CCS5.5.0导入工程(Import CCS Eclispse Project)时出错:Issues that may require your attention were encountered while importing the projects ,如下图:2.原因是由于文件夹名(例如f28335_Sci_Update_Flash_first)和文件夹中的工程名

Android4.0 Toast显示问题分析_安卓4.0不支持uni.showtoast-程序员宅基地

文章浏览阅读8.9k次,点赞3次,收藏4次。在修复RUI桌面在4.0系统下的提示信息不完善的Bug过程的一些思路与大家分享一下。Bug描述:RUI在2.2的系统点击推荐图标下载后,就会进入下载队列中下载,如果再次点击相同的图标就会使用Toast提示“**已经在下载队列中”。但是在4.0的系统就会出现异常,第二次点击相同的推荐图标时没有出现Toast提示。相关源码:public static void showMe_安卓4.0不支持uni.showtoast