diff --git a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala index 1257cbe0..46a15cf0 100644 --- a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala +++ b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala @@ -337,7 +337,7 @@ class Shadowsocks if (intent != null) { startActivityForResult(intent, Shadowsocks.REQUEST_CONNECT) } else { - onActivityResult(Shadowsocks.REQUEST_CONNECT, Activity.RESULT_OK, null) + handler.post(() => onActivityResult(Shadowsocks.REQUEST_CONNECT, Activity.RESULT_OK, null)) } } else { serviceStart() diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksVpnService.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksVpnService.scala index 34b76279..28c43504 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowsocksVpnService.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowsocksVpnService.scala @@ -442,11 +442,14 @@ class ShadowsocksVpnService extends VpnService with BaseService { try { conn = builder.establish() + if (conn == null) throw new Exception("Application not prepared.") } catch { case ex: IllegalStateException => changeState(State.STOPPED, ex.getMessage) conn = null - case ex: Exception => conn = null + case ex: Exception => + ex.printStackTrace() + conn = null } if (conn == null) {