freyskill / SerialPortHelper

Android串口通讯助手,使用C++实现。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

发送命令空指针异常

WanManito opened this issue · comments

commented

image
这两句代码的位置交换一下应该就可以避免了,我分析是因为先启动写线程的时候,线程先启动起来,这时还没有命令进来,导致concurrentCom还没有初始化

@yyan 我查看源码中这个位置的代码是跟你说的交换之后的一样

@yyan
image
还是一样空指针异常,而且在不同的机器上有的必触发,有的不触发

@yyan 通过在触发空指针的机器上,我把那里修改为 先添加命令再开启写线程,反而正常使用了,,再修改为开启写线程再添加命令还是触发空指针,,虽然前者能够正常使用,但是我发现接收一段不定长的数据,大部分分成了好几段(没有看到所谓的效率),而且再接收数据量大的时候,直接阻塞卡死。仅仅渲染打印都能卡死。

这个问题好像任然存在,长时间运行(2-3小时),就会出现这个异常,很奇怪,短时间运行没有问题
2022-03-01 22:03:35.957 4236-4299/? E/AndroidRuntime: FATAL EXCEPTION: Thread-11 Process: com.hg.sfern.robot.disin, PID: 4236 java.lang.NullPointerException: Attempt to read from field 'long top.keepempty.sph.library.SphCmdEntity.timeOut' on a null object reference at top.keepempty.sph.library.SphDataProcess.writeData(SphDataProcess.java:80) at top.keepempty.sph.library.SphThreads$WriteThread.run(SphThreads.java:65) at java.lang.Thread.run(Thread.java:761)