Android - 如何找到导致StringIndexOutOfBoundsException的原因

时间:2011-07-21 06:59:46

标签: android multithreading exception

我有一个应用程序可以打开一个webview,并在另一个线程(asynctask)中,定期通过http向服务器提交GPS数据。

我看到以下异常,但难以查明来源。你能帮我吗? Android的相对新手在这里。

V/  Exception Handler(  206): java.lang.StringIndexOutOfBoundsException
V/  Exception Handler(  206): 
V/  Exception Handler(  206): --------- Stack trace ---------
V/  Exception Handler(  206): 
V/  Exception Handler(  206):     java.lang.String.<init>(String.java:190)
V/  Exception Handler(  206):     android.webkit.FrameLoader.populateStaticHeaders(FrameLoader.java:372)
V/  Exception Handler(  206):     android.webkit.FrameLoader.handleHTTPLoad(FrameLoader.java:222)
V/  Exception Handler(  206):     android.webkit.WebViewWorker.handleMessage(WebViewWorker.java:129)
V/  Exception Handler(  206):     android.os.Handler.dispatchMessage(Handler.java:99)
V/  Exception Handler(  206):     android.os.Looper.loop(Looper.java:130)
V/  Exception Handler(  206):     android.os.HandlerThread.run(HandlerThread.java:60)

跟踪没有说明我的代码中是否有任何内容导致此问题。我只看到android系统代码。(或者可能是我看起来不正确)。

1 个答案:

答案 0 :(得分:0)

在String构造函数中有一个StringIndexOutOfBoundsException是非常罕见的,我之前没有遇到它。您传递给AsyncTask的哪种数据(随后传递给WebKit)?它是字符串缓冲区还是某个数组?

通常当我无法推断出错误的原因时,我会尝试:

  • 单步执行代码以找出导致崩溃的行
  • 打印调试语句

修改

当我尝试在我的模拟器上强制StringOutOfBoundsException时,它是FATAL EXCEPTION,日志级别为Error,日志标记为AndroidRuntime。在您的情况下,似乎ExceptionHandler已捕获异常并已打印具有Verbose日志级别的堆栈跟踪。这个异常处理程序是你自己的?或者它属于android框架?