查找此异常原因的下一步是啥?

     2023-04-19     62

关键词:

【中文标题】查找此异常原因的下一步是啥?【英文标题】:What are my next steps on finding the cause of this exception?查找此异常原因的下一步是什么? 【发布时间】:2015-08-31 08:18:54 【问题描述】:

我对 Eclipse、Java 和 Android 编程相当陌生。我已经接管了一个 Android 应用程序的开发。几个月前有人进行了更改,导致应用程序在不属于应用程序代码的代码中崩溃(异常)。我不知道项目的哪个部分或哪个部分被更改导致崩溃。当应用程序在 Android 设备上运行时,我单步执行代码,但异常发生在不属于应用程序的代码中并且我没有源代码。

我正在寻找帮助解决此问题的后续步骤。我可以做些什么?

Thread [<1> main] (Suspended (exception UnsupportedOperationException)) 
<VM does not provide monitor information>   
Choreographer.doCallbacks(int, long) line: 616  
Choreographer.doFrame(long, int) line: 583  
Choreographer$FrameDisplayEventReceiver.run() line: 799 
Handler.handleCallback(Message) line: 733   
Choreographer$FrameHandler(Handler).dispatchMessage(Message) line: 95   
Looper.loop() line: 146 
ActivityThread.main(String[]) line: 5756    
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
Method.invoke(Object, Object...) line: 515  
ZygoteInit$MethodAndArgsCaller.run() line: 1291 
ZygoteInit.main(String[]) line: 1107    
NativeStart.main(String[]) line: not available [native method]  


Thread [<1> main] (Suspended (exception UnsupportedOperationException)) 
<VM does not provide monitor information>   
ZygoteInit$MethodAndArgsCaller.run() line: 1297 
ZygoteInit.main(String[]) line: 1107    
NativeStart.main(String[]) line: not available [native method]  

【问题讨论】:

“我正在寻找帮助解决此问题的后续步骤。我可以做些什么?” -- 首先,阻止您的 IDE 因异常而中断。或者,继续越过断点,以便在 LogCat 中获得真正的堆栈跟踪。 堆栈跟踪中包含您控制的代码的最后一行(朝向顶部)是什么?这通常是最好的起点,并了解您将哪些对象传递给 3rd 方方法。 git diffftw 您使用的是版本控制系统吗?您可以比较版本以了解进行了哪些更改以及在何处进行了更改。 我正在使用版本控制系统。有许多文件被更改,包括项目布局。我比较了两个我认为可能导致问题的文件,因此我使用了构建中有效的文件版本,但仍然出现异常。 【参考方案1】:

当应用程序在 Android 设备上运行时,我单步执行代码,但异常发生在不属于应用程序的代码中

正如您所做的那样,在调试器中逐行遍历您的应用程序代码,直到您到达在抛出异常之前运行的最后一行。

在这一行中,您会找到对某个外部库的调用。你说过你没有这个库的源代码。这很不幸,但这不是路的尽头。

最简单的后续步骤来自意识到您的异常很可能是由以下两种情况之一引起的:

1) 您使用外部库的方式并非设计用于使用。例如,向其提供一些不良数据,不按顺序使用其功能,或者以错误的方式使用。阅读文档并尝试了解这是否是问题所在。如果没有文档,好吧.. 欢迎来到地狱。

2) 您对外部库的调用遵守其约定并且是正确的。如果是这种情况,则库本身可能存在错误。根据库的不同,请查阅文档或任何在线社区网站,以验证该特定错误是否已知、是否有解决方法或您是否遇到问题。

找出这两件事中的哪一个,然后决定如何继续前进。它可能正在更改您的代码,可能正在更改您使用的库,可能是两者的某种组合。没有更多细节是不可能说的。祝你好运!

【讨论】:

RestKit 中 RKManagedObject 的下一步是啥

】RestKit中RKManagedObject的下一步是啥【英文标题】:what\'sthenextofRKManagedObjectinRestKitRestKit中RKManagedObject的下一步是什么【发布时间】:2015-09-1914:41:32【问题描述】:刚看了github上的tutorial,发现了一些关于CoreData的对象方法,比如fe... 查看详情

c# windows form,部署前的下一步是啥?

】c#windowsform,部署前的下一步是啥?【英文标题】:c#windowsform,Whatisnextstepbeforedeployment?c#windowsform,部署前的下一步是什么?【发布时间】:2020-08-1416:21:55【问题描述】:刚刚在sql管理Studio中使用数据库完成了我的诊所Winforms程... 查看详情

从 appengine 迁移到完整 django 的下一步是啥?

】从appengine迁移到完整django的下一步是啥?【英文标题】:What\'sthenextstepsformovingfromappenginetofulldjango?从appengine迁移到完整django的下一步是什么?【发布时间】:2011-06-0517:19:46【问题描述】:我是编程新手,我一直在使用appengine来... 查看详情

使用 cx_Freeze 的下一步是啥?

】使用cx_Freeze的下一步是啥?【英文标题】:Whatismynextstepusingcx_Freeze?使用cx_Freeze的下一步是什么?【发布时间】:2012-06-1912:34:54【问题描述】:好的,我安装了python3.2并安装了cx_Freeexe4.2.3。我有一个名为Pythonstuff的文件夹。在这... 查看详情

cell.accessoryType = UITableViewCellAccessoryDe​​tailButton 下一步是啥?

】cell.accessoryType=UITableViewCellAccessoryDe​​tailButton下一步是啥?【英文标题】:cell.accessoryType=UITableViewCellAccessoryDetailButtonWHATISNEXT?cell.accessoryType=UITableViewCellAccessoryDe​​tailButton下一步是什么?【发布时间】:2014-08-0314 查看详情

下一步是啥();在这段代码中?

】下一步是啥();在这段代码中?【英文标题】:Whatisnext();inthiscode?下一步是什么();在这段代码中?【发布时间】:2013-08-2518:27:03【问题描述】:在这个Express应用程序(用于Nodejs)中有一行代码使用next();,我不明白。不知... 查看详情

Tigase:MUG 没有实现,下一步是啥?

】Tigase:MUG没有实现,下一步是啥?【英文标题】:Tigase:MUGnotimplemented,what\'snext?Tigase:MUG没有实现,下一步是什么?【发布时间】:2010-12-1011:59:02【问题描述】:我开始为iPhone/iPad开发多人游戏,我正在考虑使用Tigase作为游戏服... 查看详情

使用 libdbus-c++ 获得 DBus::Path - 下一步是啥?

】使用libdbus-c++获得DBus::Path-下一步是啥?【英文标题】:GotaDBus::Pathwithlibdbus-c++-whatnext?使用libdbus-c++获得DBus::Path-下一步是什么?【发布时间】:2013-05-0403:24:21【问题描述】:我有一个简短的测试程序,用于研究如何将D-Bus与libdb... 查看详情

学习了如何使用 HTML 和 CSS 从头开始​​制作响应式 HTML 电子邮件。下一步是啥? [关闭]

...如何使用HTML和CSS从头开始​​制作响应式HTML电子邮件。下一步是啥?[关闭]【英文标题】:LearnedhowtomakeresponsiveHTMLEmailsfromscratchusingHTML&CSS.What\'snext?[closed]学习了如何使用HTML和CSS从头开始​​制作响应式HTML电子邮件。下一步... 查看详情

在 vue app 中运行 npm build 以将其部署到服务器上后,下一步是啥?

】在vueapp中运行npmbuild以将其部署到服务器上后,下一步是啥?【英文标题】:Whatcanbethenextstepafterrunningnpmbuildinvueapptodeployitonserver?在vueapp中运行npmbuild以将其部署到服务器上后,下一步是什么?【发布时间】:2020-09-2804:34:53【问... 查看详情

r代码段显示了自定义的html表函数和示例。我的下一步是将此html表复制并粘贴到excel文件中,(代码片段)

查看详情

r代码段显示了自定义的html表函数和示例。我的下一步是将此html表复制并粘贴到excel文件中,(代码片段)

查看详情

上一步是硬件描述语言,下一步是fpga

上一步是硬件描述语言,下一步是FPGA。学习了硬件描述语言(Verilog或者VHDL)之后,FPGA该如何继续。世上没有捷径,每一步都得踏踏实实的走。学习FPGA也是这样,在有了硬件描述语言的基础之上,可以学习FPGA基础。学习模块的划... 查看详情

加固遗留 Rails 应用程序的第一步是啥?

】加固遗留Rails应用程序的第一步是啥?【英文标题】:WhatarethefirststepsinhardeningalegacyRailsapplication?加固遗留Rails应用程序的第一步是什么?【发布时间】:2015-10-3005:41:18【问题描述】:有一个生产系统已经运行了很多年,最初是... 查看详情

使用分析函数的下一步操作

】使用分析函数的下一步操作【英文标题】:Nextactionusinganalyticfunctions【发布时间】:2013-04-3013:20:38【问题描述】:为了进行同期群分析,我正在尝试获取每个客户的下一步操作(取消订阅、升级、降级...)我有一个包含以下数... 查看详情

使用 C++ 的 Google Cloud Speech API,第一步是啥?

】使用C++的GoogleCloudSpeechAPI,第一步是啥?【英文标题】:GoogleCloudspeechAPIusingC++,whatisthefirststep?使用C++的GoogleCloudSpeechAPI,第一步是什么?【发布时间】:2016-12-0614:17:06【问题描述】:我在我的项目中使用谷歌云语音API作为STT引... 查看详情

使用 PageViewController 上的下一步按钮

】使用PageViewController上的下一步按钮【英文标题】:UsingnextbuttononPageViewController【发布时间】:2019-05-1913:47:01【问题描述】:我有一个pageViewcontroller,它运行良好,我可以左右滚动,但现在我希望能够在下一页旁边添加按钮和使... 查看详情

Ninja 表单:多部分表单 - 字段单击的下一步 (jQuery)

】Ninja表单:多部分表单-字段单击的下一步(jQuery)【英文标题】:NinjaForms:MultiPartForms-NextStepOnFieldClick(jQuery)【发布时间】:2019-02-0309:52:44【问题描述】:我在使用NinjaForms+MultiStep表单插件实现jQuery点击事件时遇到了麻烦。目标是... 查看详情