我正在开发一个 Android 应用程序,它与蓝牙通信,在字节数组上发送和接收原始命令。
在我发送一些此命令后,应用程序随机崩溃,但有以下例外;
`Process: xxx.xxx.xxx, PID: 19983
java.lang.IndexOutOfBoundsException: 2, 1
at android.text.PackedIntVector.getValue(PackedIntVector.java:75)
at android.text.DynamicLayout.getLineTop(DynamicLayout.java:1010)
at android.text.Layout.getLineBottom(Layout.java:1725)
at android.widget.Editor.drawHardwareAcceleratedInner(Editor.java:2310)
at android.widget.Editor.drawHardwareAccelerated(Editor.java:2251)
at android.widget.Editor.onDraw(Editor.java:2191)
at android.widget.TextView.onDraw(TextView.java:8852)
at android.view.View.draw(View.java:23901)`
据我了解,问题出在 PackedIntVector.java 类上,但它是一个 Android 类,并且在堆栈跟踪中没有任何我的应用程序文件,所有文件都来自 Android 类。
有人知道会发生什么吗?异常总是在发送命令后立即发生,但并不总是发生,但我没有发现任何触发它的东西,似乎是“随机的”。
谢谢指教!
最后我找到了答案,与蓝牙连接或类似的东西无关,它是我用作日志的 TextView,当我出于某种原因清空日志以附加新文本时,它会导致异常下面发布了,所以如果有人为此苦苦挣扎,请检查您是否正在清空某些文本视图并尝试在后面附加文本或类似的内容。
唯一给我线索的是异常中提到 textview 类的行;
at android.widget.TextView.onDraw(TextView.java:8852)