Unity今年什么手游好玩崩溃异常如何捕获 C#及JVM捕获

只有VIP会员才可以下载课程视频哦~
你可以添加极客老师QQ获取课程相关资料~
游戏专属:Unity3D C# 异常
视频太卡?试试切换线路
核心内容:1.App Crash 初体验2.从零开始解读 Android Java Crash3.手把手教你用崩溃分析4.Native Crash 进阶详解5.符号化崩溃日志6.多维度数据报告,全方位跟踪数据7.游戏专属:Cocos2d-js 脚本异常8.游戏专属:Cocos2d-x Lua 脚本异常9.游戏专属:Unity3d C#异常软件环境:Eclipse、ADT是否提供资料:是课程等级:初级适合人群:具有一定 Android 基础的开发者和游戏开发者
本课时介绍 Android 应用/游戏出现 Crash 对用户造成的危害和影响。
本课时通过代码演示,如何触发一次 Java 的 Crash,并介绍常见Java Crash 出现的原因和定位方法。
本课时通过实际操作演示,如何在 Android 项目中集成 Testin 崩溃分析 SDK,并演示 Crash 如何在 Testin 崩溃分析后台进行展示和定位。
本课时介绍什么是 NDK、Native Crash 是如何产生的、如何定位 Android NDK 开发中遇到的错误。
本课时通过实际操作演示 Testin 崩溃分析符号化功能的使用方法。
本课时通过实际案例解读 Testin 崩溃分析后台报告中的多纬度数据报告和全方位跟踪数据方法。
本课时介绍为什么需要收集 Cocos2d-JS 脚本出现的异常,并通过实际操作演示效果。
本课时介绍为什么需要收集 Cocos2d-x Lua 脚本出现的异常,并通过实际操作演示效果。
本课时介绍为什么需要收集 Unity3D C# 出现的异常,并通过实际操作演示效果。
只有成为VIP会员才能提问&回复,快吧!如果你还没有账号你可以一个账号。
Testin 崩溃分析官网
添加新技术问题
课程 [游戏专属:Unity3D C# 异常]
中已存在问题
添加新技术问题
问题描述越详细,被解答的速度越快
有新回答时请邮件提醒我
着急,拜托快点
不急,慢慢解决
关联课程 [游戏专属:Unity3D C# 异常]C#一个StackOverflowException问题
[问题点数:40分,结帖人graydot]
C#一个StackOverflowException问题
[问题点数:40分,结帖人graydot]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|没有更多推荐了,
不良信息举报
举报内容:
[转][Unity3D]引擎崩溃、异常、警告、BUG与提示总结及解决方法
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!Unity手游崩溃异常如何捕获--C#及JVM捕获
1 C#脚本异常捕获
C#脚本未捕获的异常,与Android和Native未捕获异常很大的区别是,未捕获异常不会照成引用的闪退。所以,C#脚本的异常危害相对较小,但是同样更加容易存在在游戏中。闪退问题能够及时发现并进行修复。C#脚本异常,抛出的时机不同,危害性也有所不同; 在Start、Awake等函数抛出的异常,会造成Update、OnGUI无法正常运行,游戏可能表现为无响应、图片确实等。Update、OnGUI的异常也一定会引起游戏逻辑及画面上的一些异常。
从测试角度,C#脚本未捕获的异常时一定需要报告给开发者的。
1.1 AppDomain.CurrentDomain.UnhandledException回调
这几乎是所有语言都会提供的一个机制,在发生未捕获异常时回调。System.AppDomain在Unity的文档中是不存在的,根据微软官网的解释,CurrentDomain获取到当前应用程序当前线程的应用域。
If the UnhandledException event is handled in the default application domain, it is raised there for any unhandled exception in any thread, no matter what application domain the thread started in.
如果是在默认域中注册,任何线程中抛出的未捕获异常均会触发这个未处理异常函数。
然后,在游戏里面,尝试在其他线程抛出异常。
但是,抛出异常后并没有被这个处理函数接收到。
在UI线程中,Unity官方提供的函数基本上都会有try..catch,所以很难有出现未捕获的异常。比如,我们尝试通过下面的代码抛出未捕获异常GameObject.SendMessage显然是接住了这个异常,并打印出了这个异常信息。所以,UnhandledException大部分时候将会非常鸡肋,并没什么卵用。
1.2 Application.RegisterLogCallback日志回调
根据日志的TAG都会Unity,可以大致判断出UnityEngine自身的接口,在catch异常之后也是会调用Debug.LogError来输出日志的。所以,我们可以通过注册RegisterLogCallBack来获取到系统的调用。
但是,在OnLogCallbackHandler,是不能够调用Debug.Log,Debug.LogError这个API的,调用都会无效。Unity可能是为了避免引起,不必要的无限递归,所以在该函数下禁用Debug.Log。我们可以通过AndroidJavaClass调用Java代码来输出日志。
这样就能顺利的输出,未捕获的异常信息了。
2 Java未捕获异常
Android在Thread中提供了setUncaughtExceptionHandler和setDefaultUncaughtExceptionHandler,setUncaughtExceptionHandler函数只对应注册的线程中起作用,setDefaultUncaughtExceptionHandler能够在所有线程中都有用。所以,我们要监听Jvm层抛出的未捕获异常,可以直接注册DefaultUncaughtExceptionHandler。
默认的未捕获处理函数,在接到异常之后,最后会把进程杀死。如果,不杀死会照成无响应bug。
在代码中增加上述,检测程序后,即可输出如下的日志结果。
?欢迎小伙伴们与我们多交流沟通,我们会收集大家的意见,不断优化完善,提供更优质的服务!
内部用户可以戳我们的RTX: WeTest助手
外部用户可以加入官方QQ群:主要城市:
职位分类:
工作经验:1年以下
学历:本科
公司规模:20-99人
公司性质:民营
岗位职责: 1 、负责Unity3d手游客户端的开发; 2 、负责公司app游戏产品的前端开发工作; 3 、编写简易代码,做基础的开发工作; 4 、协助软件工程师完成技术文档的撰写及测试工作; 岗位要求: 1 、理工科院校计算机专业应届毕业生,入职...
工作经验:3-5年
学历:本科
公司规模:20-99人
公司性质:民营
岗位职责: 1 、熟悉Unity3D引擎,使用C#进行基于U3D引擎的游戏项目的开发; 2 、游戏独立功能模块的代码设计及实现; 3 、负责客户端在Android、IOS平台下的功能开发; 4 、负责客户端的稳定性和高效性优化开发; 5 、配合团队其他成员进...
工作经验:5-10年
学历:本科
公司规模:20-99人
公司性质:民营
岗位职责: 1 、带领客户端开发团队使用Unity3d进行游戏开发; 2 、负责游戏前端程序架构设计、核心算法实现、关键点难点技术公关; 3 、负责客户端项目计划制定和管理、进度和质量把控、团队技术提升工作; 4 、负责与服务器、策划、美术等其他内部相关组组织...
智联招聘为您推荐 “ 山西Unity3d游戏开发招聘 ”相关职位信息:
山西Unity3d游戏开发招聘网是由智联招聘专为山西找Unity3d游戏开发工作的求职者创建的,包含了大量更新、更全的山西Unity3d游戏开发招聘信息,每天免费为您提供真实、可靠、权威的Unity3d游戏开发招聘信息。在山西找Unity3d游戏开发工作尽在智联Unity3d游戏开发招聘网。
山西Unity3d游戏开发招聘相关职位推荐:
山西银行招聘热门推荐:
您可以在中查看}

我要回帖

更多关于 手游排行版 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信