关于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

智能推荐

Python 加密解密_咕咕加密v4-程序员宅基地

文章浏览阅读1k次。# -*- coding: utf-8 -*-import hashlib'''加密解密'''#MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,# 通常用一个32位的16进制字符串表示。md5 = hashlib.md5()update = md5.update('hhhhhaaa')print(md5.hexdigest())#SHA1的结果是160..._咕咕加密v4

使用cesium primitive api绘制三维插值图,热力图_cesium 插值点-程序员宅基地

文章浏览阅读1.4k次,点赞3次,收藏13次。【代码】使用cesium primitive api绘制三维插值图。_cesium 插值点

flask + pyecharts 疫情数据分析 搭建交互式动态可视化疫情趋势分析、舆情监测平台(附代码实现)_疫情舆情分析代码-程序员宅基地

文章浏览阅读978次,点赞3次,收藏21次。该项目是浙江大学地理空间数据库课程作业8:空间分析中,使用 flask + pyecharts搭建的简单新冠肺炎疫情数据可视化交互分析平台的一部分,完整的实现包含疫情数据获取、态势感知、预测分析、舆情监测等任务;包含完整代码、数据集和实现的github地址: https://github.com/yunwei37/COVID-19-NLP-vis项目分析报告已部署到网页端,可点击 http://flask.yunwei123.tech/ 进行查看,数据已更新到6.17本项目采用flask作为_疫情舆情分析代码

python之09-tuple元组-程序员宅基地

文章浏览阅读254次。详细请参考:https://www.cnblogs.com/Neeo/articles/11212374.html1、元组的基本操作1>创建元组Python中,元组(tuple)用一对小括号()表示,元组内的各元素以逗号分隔。t = ()print(type(t)) # <type 'tuple'>t1 = ('name', )print(t1) ..._tuple元祖for循环取值

c语言程序怎样生产dll文件,关于c语言创建dll文件及dll文件的调用-程序员宅基地

文章浏览阅读860次。关于c语言创建dll文件及dll文件的调用近来又有人在群里问如何用c语言编制dll文件(动态链接库)。原来没有对这个问题太在意过,也没有尝试过任何解决方案,毕竟原来我是用vb的(现在用.net),做个dll只不过是点选一下建立activeX dll工程的图标而已。今天在网上与朋友聊天,看了他指给我的几个几个文件,用MingW将C程序编译成dll文件的例子,我恍然大悟,原来讲C程序编译成dll文件只..._keil c语言 生成dll

【学习笔记】基于遗传算法的BP神经网络优化算法_遗传算法优化 bp 染色体-程序员宅基地

文章浏览阅读6.8k次,点赞11次,收藏111次。一、背景介绍BP神经网络是一类多层的前馈神经网络。它的名字源于在网络训练的过程中,调整网络的权值的算法是误差的反向传播的学习算法,即为BP学习算法。BP神经网络是人工神经网络中应用广泛的算法,但依然存在着一些缺陷,例如学习收敛速度太慢、不能保证收敛到全局最小点、网络结构不易确定等。另外,网络结构、初始连接权值和阈值的选择对网络训练的影响很大,但是又无法准确获得,针对这些特点可以采用遗传算法对神经网络进行优化。二、算法流程创建网络;确定网络的初始权重值和阈值,对其进行编码得到初始种群;while_遗传算法优化 bp 染色体

随便推点

二、Json对象、Json数组和Json字符串_json字符串数组-程序员宅基地

文章浏览阅读6.7k次,点赞3次,收藏17次。一、Json字符串和Json对象定义:1、Json字符串:所谓字符串:单引号或者双引号引起来,是一个String类型的字符串:如下:var person='{"name":"shily","sex":"女","age":"23"}';//json字符串console.log(person)console.log(person.name)console.log(typeof person) 2、Json对象:最显著的特征:对象的值可以用 “对象.属性” 进行访问,_json字符串数组

Linux系统100条命令:关于Ubuntu和 CentOS 7 相同功能的不同的终端操作命令_ubuntu 命令跟centos-程序员宅基地

文章浏览阅读718次。CentOS 7:ip link set interface_name up 或 ip link set interface_name down。Ubuntu:ifconfig interface_name up 或 ifconfig interface_name down。CentOS 7:编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件。Ubuntu:编辑 /etc/network/interfaces 文件。_ubuntu 命令跟centos

windows10下VS2019编译jpegsrc.v9e.tar.gz为lib静态库(已验证)_jpeg library error vs2019-程序员宅基地

文章浏览阅读652次。jpegsr9e windows vs2019生成方法,以及库下载_jpeg library error vs2019

重磅?华为 Mate60/Pro 系列网速实测结果公布,最高 1205.57 Mbps_华为mate60pro+核实网络-程序员宅基地

文章浏览阅读647次。总的来说,华为Mate 60/Pro系列手机的高速网速表现引起了广泛的关注,这也是消费者对该系列手机购买热情高涨的一个重要因素。可以看出,华为Mate 60/Pro系列手机的网速表现非常出色,这也是消费者购买该系列手机的一个重要原因。此前,华为Mate 60 Pro的供应量已经增至1500万至1700万台,而最新消息称,华为Mate 60 Pro和Mate 60 Pro+的出货量甚至已上调至2000万台。目前,在中国市场上,手机竞争愈发激烈,不仅华为Mate 60系列,其他品牌的手机也都受到了高温的迎接。_华为mate60pro+核实网络

access查找出生日期年份_access怎样利用出生日期计算年龄呀!-程序员宅基地

文章浏览阅读7.1k次。公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解。话题:access怎样利用出生日期计算年龄呀!回答:lt;%set rs = server.createobject("adodb.recordset") curid=request("id") sql = "UPDATE pany SET a_num=a_num+1,day_count=day_count+1 WHERE day_lda..._access出生年份表达式

python 内置函数-程序员宅基地

文章浏览阅读75次。Python内置函数(1)——absPython内置函数(2)——divmodPython内置函数(3)——maxPython内置函数(4)——minPython内置函数(5)——powPython内置函数(6)——roundPython内置函数(7)——sumPython内置函数(8)——bool...