【发布时间】:2017-01-01 12:10:40
【问题描述】:
我正在尝试根据用户提交的崩溃报告追踪错误的来源,并得出结论,我需要一些关于如何解释崩溃报告的基本培训。
例如,崩溃报告如下:
java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:334)
at java.lang.Integer.valueOf(Integer.java:525)
at com.cloud3squared.meteogram.MeteogramService.cacheFileName(MeteogramService.java)
cacheBaseName(MeteogramService.java)
getAppWidgetId(MeteogramService.java)
createAdhocWidgetUpdateIntent(MeteogramService.java)
setupBasicClickStuff(MeteogramService.java)
setAdhocAppWidgetAlarm(MeteogramService.java)
setNextClockWidgetUpdateAlarm(MeteogramService.java)
cancelAppWidgetAlarm(MeteogramService.java)
cancelAppWidgetAlarms(MeteogramService.java)
logAction$3aaf2084(MeteogramService.java)
logActionAgainstAllWidgets$62dc3a79(MeteogramService.java)
updateAppWidget(MeteogramService.java)
showButtons(MeteogramService.java)
hideButtons(MeteogramService.java)
fetchOk(MeteogramService.java)
getViewId(MeteogramService.java)
putBitmapIntoWidget(MeteogramService.java)
lngNow(MeteogramService.java)
showNotification(MeteogramService.java)
showMessageInWidget(MeteogramService.java)
sharpen(MeteogramService.java)
removeFromRequestsList(MeteogramService.java)
removeFromRequestsList$204347ff(MeteogramService.java)
MeteogramService.java)
displayStuffInWidget(MeteogramService.java)
access$000(MeteogramService.java)
access$100(MeteogramService.java)
access$300(MeteogramService.java)
at com.cloud3squared.meteogram.MeteogramService$GetServerWidgetAsyncTask.onPostExecute(MeteogramService.java)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.access$500(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
这是否显示了导致NumberFormatException 的调用顺序,如果是,按什么顺序?我是否从下到上阅读at 行? access 嵌套在 MeteogramService 中是什么?...该类中没有 access 方法。如何确定 NumberFormatException 实际出现在哪个函数中?从逻辑上讲,我会在 cacheFileName 内部说,但那里没有任何东西可能导致这样的异常...... String 到 int 的解析发生在此之前......解析的 int 只是传递给 @ 987654331@.
感谢您的帮助。
编辑
更多代码 sn-ps 可以在下面的 cmets 中引用:
static String cacheFileName(Context context, int appWidgetId, int pxWidth, int pxHeight) {
String fileName = cacheBaseName(appWidgetId) + "_" + pxWidth + "x" + pxHeight + ".png";
logAction(context, appWidgetId, "cacheFileName " + fileName, TAG);
return fileName;
}
static String cacheBaseName(int appWidgetId) {
return (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) ? "widget_" : "widget_" + appWidgetId;
}
【问题讨论】:
-
是的,异常堆栈显示调用顺序。最上面的一个(invalidInt)抛出了异常。我不太确定 cacheFileName 后面列出的所有方法名称,也许 Java 专家可以发表评论。期待的方法将是 onPostExecute 调用的方法。为了调试,我通常会在 MeteograomService.java 中查看对 valueOf(String) 的调用。希望没有太多。确保尝试/抓住每个
-
它与您的小部件有关,当它在您的消息报服务中更新时
-
你在使用 ProGuard 吗?
-
是的,我正在使用 proguard,但为每个版本上传一个映射文件。
标签: android debugging crash-reports developer-console