为什么在设备上调试时源码行号不匹配



为什么在设备上调试时源代码的行号不匹配。源代码的API23版本与手机上安装的android 6.0.1版本相对应。我的应用程序写入自己的有关异常和调用堆栈的错误日志信息。我在日志中看到一个条目,表明第 466 行中的函数引发了异常。我运行调试器,看到此函数在另一行中。这意味着什么以及是否有可能纠正这种情况?

Stack call[ver:1.2.116]:android.database.AbstractCursor.checkPosition(AbstractCursor.java:466)  Wrong line number!!!! In source code is line 460
Stack call[ver:1.2.116]:android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
Stack call[ver:1.2.116]:android.database.AbstractWindowedCursor.getBlob(AbstractWindowedCursor.java:44)
Stack call[ver:1.2.116]:**.***********.************.DataEngine$Photo.getPhotoBody(DataEngine.java:982)
Stack call[ver:1.2.116]:**.***********.************.services.IntentServicePhotoByReportUpload.Job(IntentServicePhotoByReportUpload.java:149)
Stack call[ver:1.2.116]:**.***********.************.services.IntentServicePhotoByReportUpload.onHandleIntent(IntentServicePhotoByReportUpload.java:84)
Stack call[ver:1.2.116]:android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:66)
Stack call[ver:1.2.116]:android.os.Handler.dispatchMessage(Handler.java:102)
Stack call[ver:1.2.116]:android.os.Looper.loop(Looper.java:148)
Stack call[ver:1.2.116]:android.os.HandlerThread.run(HandlerThread.java:61)

这只是意味着您拥有的源代码与设备上运行的代码不匹配。这可能是由于制造商更改、修补程序等原因。

我认为没有任何好方法可以解决这个问题,除非您可以掌握设备正在运行的源的确切版本。

最新更新