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

时间:2017-03-30 12:44:25

标签: android debugging

为什么在设备上调试时源代码的行号不匹配。源代码的版本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)

1 个答案:

答案 0 :(得分:1)

这只是意味着您拥有的源代码与设备上运行的代码不匹配。这可能是因为制造商的变化,热修复等等。

除非您能够掌握设备运行源的确切版本,否则我认为除此之外没有任何好办法。