问题描述
安装 InkOS Studio v1.5.0-apk.2 后,首次启动永远停留在「正在启动本机 Node 后端」,检测次数持续增长但永远无法进入主界面。
版本信息
- 包名:
io.qzz.christmas.inkoslocal
- 版本号:
v1.5.0-apk.2 (versionCode=14)
- 设备:Android arm64
根因
EmbeddedNodeService.canConnectToNode() 在主线程执行了 new Socket().connect(),触发 NetworkOnMainThreadException,导致 Service 反复崩溃,前端永远收不到就绪通知。
logcat 崩溃栈
AndroidRuntime: FATAL EXCEPTION: main
Process: io.qzz.christmas.inkoslocal:node
java.lang.RuntimeException: Unable to start service io.qzz.christmas.inkoslocal.EmbeddedNodeService
with Intent { act=io.qzz.christmas.inkoslocal.RESTART_NODE }:
android.os.NetworkOnMainThreadException
Caused by: android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork
at java.net.Socket.connect(Socket.java:646)
at io.qzz.christmas.inkoslocal.EmbeddedNodeService.canConnectToNode(r8:17)
at io.qzz.christmas.inkoslocal.EmbeddedNodeService.restartNodeIfNeeded(r8:33)
at io.qzz.christmas.inkoslocal.EmbeddedNodeService.onStartCommand(r8:53)
建议修复
将 canConnectToNode() 中的网络操作移出主线程,例如用 AsyncTask、Kotlin coroutines 或 Handler.post() 包装;或在 onStartCommand 中先返回 START_STICKY,再异步执行健康检查。
问题描述
安装 InkOS Studio v1.5.0-apk.2 后,首次启动永远停留在「正在启动本机 Node 后端」,检测次数持续增长但永远无法进入主界面。
版本信息
io.qzz.christmas.inkoslocalv1.5.0-apk.2(versionCode=14)根因
EmbeddedNodeService.canConnectToNode()在主线程执行了new Socket().connect(),触发NetworkOnMainThreadException,导致 Service 反复崩溃,前端永远收不到就绪通知。logcat 崩溃栈
建议修复
将
canConnectToNode()中的网络操作移出主线程,例如用AsyncTask、Kotlin coroutines 或Handler.post()包装;或在onStartCommand中先返回START_STICKY,再异步执行健康检查。