Selendroid mode can't be setup in appium

hi,

i can setup selendroid from command line, but can’t do that from appium .

My appium version is 1.4.0.0, client version is 3.1.0

here is the detail log:
info: [debug] Getting install status for air.com.wuba.bangbang

info: [debug] Getting device API level
info: [debug] executing cmd: D:\SDK\SDK2\platform-tools\adb.exe -s HT222TD06584 shell “getprop ro.build.version.sdk”
info: [debug] Device is at API Level 15
info: [debug] executing cmd: D:\SDK\SDK2\platform-tools\adb.exe -s HT222TD06584 shell “pm list packages -3 air.com.wuba.bangbang”
info: [debug] App is installed
info: [debug] Forwarding system:1949 to device:8080
info: [debug] executing cmd: D:\SDK\SDK2\platform-tools\adb.exe -s HT222TD06584 forward tcp:1949 tcp:8080
info: [debug] Pushing settings apk to device…
info: [debug] executing cmd: D:\SDK\SDK2\platform-tools\adb.exe -s HT222TD06584 install “C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk”
info: [debug] Pushing unlock helper app to device…
info: [debug] executing cmd: D:\SDK\SDK2\platform-tools\adb.exe -s HT222TD06584 install “C:\Program Files (x86)\Appium\node_modules\appium\build\unlock_apk\unlock_apk-debug.apk”
info: [debug] executing cmd: D:\SDK\SDK2\platform-tools\adb.exe -s HT222TD06584 shell “dumpsys window”
info: [debug] Screen already unlocked, continuing.
info: [debug] executing cmd: D:\SDK\SDK2\platform-tools\adb.exe -s HT222TD06584 shell “am instrument -e main_activity ‘air.com.wuba.bangbang.common.login.activity.LoginActivity’ air.com.wuba.bangbang.selendroid/io.selendroid.server.ServerInstrumentation”
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:1949/wd/hub/status",“method”:"GET”}
info: [debug] Cleaning up appium session
error: Failed to start an Appium session, err was: Error: Waited 20 secs for selendroid server and it never showed up
info: [debug] Error: Waited 20 secs for selendroid server and it never showed up
at C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\selendroid.js:342:14
at Request._callback (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\common.js:121:5)
at self.callback (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\request\request.js:344:22)
at Request.EventEmitter.emit (events.js:95:17)
at Request.onRequestError (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\request\request.js:961:8)
at ClientRequest.EventEmitter.emit (events.js:95:17)
at Socket.socketErrorListener (http.js:1547:9)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:440:14
at process._tickDomainCallback (node.js:459:13)
info: [debug] Responding to client with error: {“status”:33,“value”:{“message”:“A new session could not be created. (Original error: Waited 20 secs for selendroid server and it never showed up)”,“origValue”:“Waited 20 secs for selendroid server and it never showed up”},“sessionId”:null}
info: ← POST /wd/hub/session 500 33302.958 ms - 240