一前同事开发的一检测工具,手机需要通过网络与 PC 进行通信,之前一直用着很好,今天在一 Android 7.0 手机上进行使用的时候,每次必崩。崩溃日志显示 android.os.NetworkOnMainThreadException,查看崩溃处的代码,原来该处的 DataOutputStream.write() 放在了主线程中,因为 Android 在 2.3 之后就不允许在主线程中访问网络数据,否则会抛出 android.os.NetworkOnMainThreadException,所以才会崩溃,但是转念一想,之前使用过的其他4.X、5.X、6.X 的手机为什么没有抛此异常?后来在StackOverflow 上找到了答案: