错误的原因是在创建AdbChimpDevice初始化时,进行端口映射出现错误。
public AdbChimpDevice(IDevice device)
{
this.device = device;
this.manager = createManager("127.0.0.1", 12345);
Preconditions.checkNotNull(this.manager);
}
try {
this.device.createForward(port, port);
} catch (TimeoutException e) {
LOG.log(Level.SEVERE, "Timeout creating adb port forwarding", e);
return null;
} catch (AdbCommandRejectedException e) {
LOG.log(Level.SEVERE, new StringBuilder().append("Adb rejected adb port forwarding command: ").append(e.getMessage()).toString(), e);
return null;
} catch (IOException e) {
LOG.log(Level.SEVERE, new StringBuilder().append("Unable to create adb port forwarding: ").append(e.getMessage()).toString(), e);
return null;
}
所以先会报Unable to create adb port forwarding的错误,返回null后,Preconditions.checkNotNull就会报空指针错误。所以上面的错误归根结底是端口映射出错,而通过错误信息connection refused:connect,了解服务器端的serversocket没有启动成功或者chimpchat的12345端口被占用,才会造成连接被拒绝。也有可能你的adb断开了。用adb devices查看一下。
使用命令查看一下端口是否被占用
netstat -a -n|find /I "12345"