将我的开发环境从El Capitan迁移到Sierra并将Tizen Studio从1.0.1更新到1.1.1后,SDB CLI在我的新机器上不再起作用。我安装了JDK 1.8.0_121。
我无法真正启动SDB服务器。
$ sdb devices
* server not running. starting it now on port 26099 *
fatal: server listener(26099) cannot bind
然后返回以下内容:
* server started successfully *
但我无法连接到设备或列出它们:
$ sdb devices
在没有反馈的情况下进入无限循环。
我也测试了旧的Tizen Studio版本1.0.1但得到了相同的结果。这可能是Java或MacOS问题吗?
任何提示可能是什么问题?
答案 0 :(得分:2)
似乎是SDB和Mac OS Sierra的问题。 我降级到Smart Development Bridge版本2.2.67并且sdb工作正常。所有较新的版本都会出现同样的问题。
答案 1 :(得分:1)
您需要终止sdb无法绑定的进程,然后使用 import { Directive, HostBinding, Input,ElementRef, HostListener } from '@angular/core';
@Directive({
selector: '[highlighted]'
})
export class HighlightedDirective {
constructor(private _elementRef : ElementRef) { }
@Input('highlighted') isHighlighted = false;
@HostBinding('class.highlighted')
get cssClasses() {
return this.isHighlighted;
}
@HostListener('document:click', ['$event.target'])
public onClick(targetElement) {
const clickedInside = this._elementRef.nativeElement.contains(targetElement);
if (clickedInside) {
this.isHighlighted = !this.isHighlighted
}
else{
this.isHighlighted =false;
}
}
}
重新启动sdb
找出端口26099正在处理什么进程
sdb start-server
输出
sudo lsof -i:26099
杀死进程
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sdb 3495 lucasbatista 5u IPv4 0x401834fdf37019a7 0t0 TCP *:26099 (LISTEN)
在这种情况下
kill <pid>
注意:
当我们开始使用Tizen Studio时,我意识到占用此端口的进程通常是模拟器本身。
现在,我不知道为什么sdb根本不选择启动另一个端口,或者仿真器没有在另一个端口上启动,因为Tizen Studio的开发人员必须知道默认的sdb端口为26099 >
无论如何,我上面提到的这一循序渐进的步骤对我有用,我希望它对您也有用