每当我尝试运行时adb devices
:
$ adb devices * daemon not running. starting it now * * daemon started successfully * List of devices attached HT0ANRV05740 device
它说守护进程没有运行并重新启动守护进程.
然后,如果我再次运行adb设备,它会做同样的事情 -
$ adb devices adb server is out of date. killing... * daemon started successfully * List of devices attached HT0ANRV05740 device
然后,如果我再次运行它,它再次做同样的事情 -
$ adb devices adb server is out of date. killing... * daemon started successfully * List of devices attached HT0ANRV05740 device
请帮忙!!
此外,我的DDMS不断给我以下消息 -
[2011-02-23 16:17:05 - DeviceMonitor]Adb connection Error:An existing connection was forcibly closed by the remote host
以下是adb重启之前的日志 -
1291 locapi_rpc_glue V loc_ioctl 1291 RPC D written RPC packet size: [480] 1291 RPC D read RPC packet 1291 RPC D read RPC packet size: [28] 1291 lib_locapi V qct_loc_eng_inject_xtra_data, inject part = 100, len = 167, len = 167 1291 lib_locapi V qct_loc_eng_inject_xtra_data, total part = 100, len = 167 1291 locapi_rpc_glue V loc_ioctl 1291 RPC D written RPC packet size: [248] 1291 RPC D read RPC packet 1291 RPC D read RPC packet size: [28] 1291 lib_locapi D qct_loc_eng_inject_xtra_data: injected 39767, SUCCESS 1291 lib_locapi V inject_xtra_waiting = flase 1291 GpsLocationProvider D Releasing wakelock 1291 WifiService D releaseWifiLockLocked: WifiLock{NetworkLocationProvider type=2 binder=android.os.Binder@47aead50} 1291 WifiService D enable and start wifi due to updateWifiState 1218 rmt_storage I rmt_storage open event 1218 rmt_storage I rmt_storage client thread started 1218 rmt_storage I rmt_storage events processing done 1218 rmt_storage I rmt_storage register cb event 1218 rmt_storage I rmt_storage status id = 2 1218 rmt_storage I rmt_storage events processing done 1218 rmt_storage I rmt_storage open event 1218 rmt_storage I rmt_storage client thread started 1218 rmt_storage I rmt_storage events processing done 1218 rmt_storage I rmt_storage register cb event 1218 rmt_storage I rmt_storage status id = 2 1218 rmt_storage I rmt_storage events processing done 1218 rmt_storage I rmt_storage write event 1218 rmt_storage I unblock rmt_storage client thread 1218 rmt_storage I rmt_storage events processing done 1218 rmt_storage I rmt_storage write: bytes written = 3145216 1218 rmt_storage I rmt_storage write: bytes written = 512 1218 rmt_storage I rmt_storage status handle = 1 1291 BatteryStatsImpl I notePhoneSignalStrengthLocked: 4->3 1218 rmt_storage I rmt_storage write event 1218 rmt_storage I rmt_storage events processing done 1218 rmt_storage I unblock rmt_storage client thread 1291 PowerManagerService D New lightsensor value:40, lcdValue:143 1291 PowerManagerService D lightSensorChangedLocked, buttonValue >= 0, mPowerState = 3 1218 rmt_storage I rmt_storage write: bytes written = 3145216 1218 rmt_storage I rmt_storage write: bytes written = 512 1218 rmt_storage I rmt_storage status handle = 2 1291 RPC D read RPC packet 1291 RPC D read RPC packet size: [80] 1291 locapi_rpc_glue V Callback received: 80 (cb_id=0x50B0000 handle=1) 1291 RPC D written RPC packet size: [28] 1470 usicWidgetController D unbindMusicPlaybackService() 1707 MediaPlaybackService E BadQueue mPlayListLen : 0 mAlbumListLen : 0 mShrinkAlbumListLen : 0 1291 NotificationService V Battery Full, Charging 1291 lights E write ok string=0,len=1 1291 lights E write ok string=0,len=1 1291 lights E write ok string=0 0,len=3 1291 lights E write ok string=1,len=1 1707 MediaPlayer.java D setOnCompletionListener being cleaned to null 1291 lights E write ok string=0,len=1 1291 lights E write ok string=0 0,len=3 1291 NotificationService V Turn off Jogball/OJ LED 1291 NotificationService D cancelNotification, ACTION_NOTIFICATION_REMOVE,pkg=com.htc.music,id=1 1291 AudioService I AudioFocus abandonAudioFocus() from android.media.AudioManager@476ddee0com.htc.music.MediaPlaybackService$5@476dd838
Aditya Kresn.. 298
您是否正在将Genymotion用于虚拟设备?
如果是这个错误可能是因为来自Genymotion的ADB与来自Android SDK的ADB(使用相同的端口号)冲突,要解决这个问题,只需转到settings
=>选择ADB
标签=>单击该选项Use custom Android SDK Tools
并设置您的SDK文件夹
配置此之后,尝试进入文件夹,重新启动ADB platform-tools
其adb
放置并做下面的命令:
./adb kill-server
./adb start-server
*提示:在运行上述命令之前,您可以关闭Genymotion的过程
希望这有帮助.
您是否正在将Genymotion用于虚拟设备?
如果是这个错误可能是因为来自Genymotion的ADB与来自Android SDK的ADB(使用相同的端口号)冲突,要解决这个问题,只需转到settings
=>选择ADB
标签=>单击该选项Use custom Android SDK Tools
并设置您的SDK文件夹
配置此之后,尝试进入文件夹,重新启动ADB platform-tools
其adb
放置并做下面的命令:
./adb kill-server
./adb start-server
*提示:在运行上述命令之前,您可以关闭Genymotion的过程
希望这有帮助.
我从我的电脑上卸下了戴尔PC套件和HTC Sync,这个问题就消失了.
编辑:详细说明这个问题的原因:HTC同步带有自己的ADB服务器.它会更新您的PATH环境变量以指向其服务器版本.编辑PATH变量并删除对HTC Sync目录的引用.现在,您再次使用Google的ADB.
我发现我偶尔需要手动显式杀死并重启服务器:
adb kill-server adb start-server
这种冲击通常足以让它再次站起来,并防止重复的adb server is out of date. killing...
消息.
系统上可能运行多个adb进程.诸如Android Reverse Tether之类的工具可能使用他们自己版本的adb工具,因此内存中的版本可能与从命令行运行的版本(通过路径变量)冲突.
在Windows中,按CTL+ Shift+ ESC访问"任务管理器",在" 图像名称"列中排序,然后adb.exe
通过右键单击并选择" 结束进程"来终止所有实例.请注意,下面有多个实例adb.exe
:
在Linux环境中,只需使用该kill -9
命令即可.这样的东西在运行的Android设备上工作adb
(使用ps
输出,搜索grep
用于开始adb
的进程,从adb
进程获取进程ID ,并将该ID发送到kill -9
命令):
kill -9 $(ps | grep "S adb" | busybox awk '{print $2}')
一旦解决了adb
进程 - 从而解决冲突 - 然后再次adb
从命令行重试:
adb start-server
在我的机器(Ubuntu 14.04和Genymotion 2.5.2)中,问题的根源是,我有2个不同版本的adb文件.
(之前,缩小这个问题来源,我已经有了Genymotion的设置>"使用自定义Android SDK工具",参考我的机器安装的Android SDK目录,如Aditya Kresna Permana所建议.我也试过杀死并启动adb服务器和其他一些来自网络的解决方案).
然后看到,adb version
从我的Android SDK安装目录"〜/ Android/Sdk/platform-tools"生成 - "Android Debug Bridge version 1.0.32"
但是,adb version
从"/ usr/bin"目录生成的命令 - "Android Debug Bridge version 1.0.31"
所以只需按照http://bernaerts.dyndns.org/linux/74-ubuntu/328-ubuntu-trusty-android-adb-fastboot-qtadb更新"/ usr/bin"中的adb即可
# adb version Android Debug Bridge version 1.0.31 # wget -O - https://skia.googlesource.com/skia/+archive/cd048d18e0b81338c1a04b9749a00444597df394/platform_tools/android/bin/linux.tar.gz | tar -zxvf - adb # sudo mv adb /usr/bin/adb # sudo chmod +x /usr/bin/adb # adb version Android Debug Bridge version 1.0.32
现在运行adb devices
完全按预期工作.
它还解决了在我的PhoneGap(Cordova)应用程序没有与Genymotion的虚拟设备集成之前的相关问题.现在显然问题也解决了.
这是因为您运行的SDK不是SDK中包含的adb.如果在linux上检查adb二进制文件在哪里
which adb Expected Output : ANDROID_SDK/platform-tools/adb
如果没有指向ANDROID_SDK/platform-tools/adb,那么您运行的是安装在计算机上不同位置的某个旧版本的adb.
除了提供SDK之外,运行adb没有错,但缺点是当更新android SDK时它不会自动更新,这就是你遇到这个过时版本问题的原因.
更容易修复并避免此问题在将来将旧的(误导性的)adb二进制文件重命名为其他内容.
按照步骤解决此问题.
$ which adb *o/p /usr/bin/adb - (output will depend on your machine)* $ cd /usr/bin/ $ ls -lt | grep adb *o/p -rwxr-xr-x 1 root root 160912 Mar 31 2016 adb* $ sudo mv adb adb_bakup $ ls -lt | grep adb o/p -rwxr-xr-x 1 root root 160912 Mar 31 2016 adb_bakup $ export PATH="/path/to/android_sdk/platform-tools:$PATH" $ which adb *o/p/platform-tools/adb* ---> You are all good now
我刚刚退出HTC Sync,再次尝试,它运作良好.注意:手机变黑(锁定),我只是打开它,我的应用程序正在运行.:)
系统:Windows 10
我的问题:将Genymotion设置为指向自定义SDK没有任何影响.我还是收到了:
无法在Android上启动项目:无法安装smartsocket 侦听器:无法绑定到127.0.0.1:5037:通常只允许使用每个套接字地址(协议/网络地址/端口).(10048)无法从ADB Server读取ok*无法启动守护程序*错误:无法连接到守护程序
我发现在整个系统中使用的ADB版本存在差异.这是我用来找到它们的命令:
where /r C:\ adb.exe
这产生了结果:
C:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe C:\Program Files\Genymobile\Genymotion\tools\adb.exe C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb backup\adb.exe
导航到每个目录并运行:
adb.exe version
让我看看世博正在运行亚行版:
Android Debug Bridge version 1.0.36 Revision fd9e4d07b0f5-android
使用自定义SDK的Genymotion有版本(c:\ Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe):
Android Debug Bridge version 1.0.39 Revision 3db08f2c6889-android
作为测试,我从adb文件(adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll)中取出
c:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe
并将它们放入备份文件夹中.然后我移动了位于的adb文件
c:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe
进入同一个地方.我杀了adb:
adb kill-server
由于我的Genymotion设备已经运行,导致adb服务器自动重启.我点击了Expo XDE内部的"重启"按钮,它立即开始工作.上午1:13:04点击重启按钮的日志:
12:45:53 AM could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: Only one usage of each socket address (protocol/network address/port) is normally permitted. (10048) could not read ok from ADB Server * failed to start daemon * error: cannot connect to daemon 1:13:04 AM Restarting project and clearing packager cache (Hold shift while clicking restart to avoid clearing cache). 1:13:11 AM Starting React Native packager... 1:13:17 AM Scanning 543 folders for symlinks in C:\Users\kyle\git\betalog\node_modules (49ms) 1:13:17 AM 1:13:19 AM Couldn't adb reverse: closed 1:13:20 AM Project opened! You can now use the "Share" or "Device" buttons to view your project. 1:13:26 AM Couldn't adb reverse: closed 1:13:26 AM Downloading latest version of Expo 1:13:28 AM Installing Expo on device 1:13:33 AM Opening on Android device 1:13:56 AM Building JavaScript bundle: finished in 59643ms. 1:14:01 AM Dependency graph loaded. 1:14:03 AM Your JavaScript transform cache is empty, rebuilding (this may take a minute).
结论:Genymotion和Expo可能需要使用相同版本的adb,以便Expo可以与模拟设备正确通信.将Genymotion指向您的Android SDK位置以及确保Expo XDE具有相同版本将允许设备之间的正确通信.我将Expo XDE版本移动到SDK位置,但您可以采用其他方式(获取sdk ADB文件并将它们放置在Expo XDE资源位置).
PS 我已经完成了与此问题相关的stackoverflow帖子.这样你们就知道我的任务管理器显示了三个运行adb.exe的实例.如果你杀了其中任何一个,他们就会回来.
希望这有助于/欢呼
看起来设备上的ADB守护程序(adbd)与主机上的ADB服务器进程不同意它们所说的协议版本.您正在运行哪个版本的SDK以及您正在调试的设备上的操作系统版本是什么?
您可能需要做的是实际降级SDK工具的版本,以便ADB守护程序和进程达成一致.我认为服务器进程是完全向后兼容的,但这可能是其中一个不支持的极端情况之一.谷歌没有宣传你可以获得他们旧的SDK工具包的事实,但可以通过查看http://developer.android.com上的档案区找到它们.
我只是完全关闭了htc sync应用程序并再次尝试.它按预期工作.
我在这个墙上撞到墙上.当我安装最新版本的HTC sync(3.0.5579)时,就开始发生这种情况.由于某种原因,adb.exe在任务管理器中多次出现,我得到的adb服务器已经过时多次杀死错误.我在HTC同步目录和Android SDK platform-tools目录中找到了adb.exe版本.我的路径设置正确指向android SDK目录,没有看到HTC Sync路径(也许我错过了什么,但我不这么认为).无论如何,为了解决这个问题,我只是在HTC Sync目录中重命名了adb.exe文件,一切都恢复了.这可能不是解决这个问题的正确方法,但它对我有用.
帮助我:停止HTC Sync(在系统托盘中)并重命名HTC的adb.exe(C:\ Program Files(x86)\ HTC\HTC Sync 3.0\adb.exe).