ADB服务器版本(36)与此客户端不匹配(39){未使用genymotion}

时间:2017-03-27 15:21:08

标签: android adb

在测试设备上安装Android O预览后,我的ADB停止工作并开始向我发出此错误。

<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:siiLR="https:/www.firstschema/SLR.xsd" xmlns:sii="https://www.secondschema/sinfo.xsd"> <xsl:output method="xml" indent="yes" /> <xsl:template match="/"> <xsl:element name="siiLR:SuministroLRFacturasRecibidas"> <xsl:attribute name="xsi:schemaLocation"><xsl:text>https://www.secondschema/sinfo.xsd https://www.secondschema/sinfo.xsd</xsl:text></xsl:attribute> <sii:Cabecera> <sii:Titular> <sii:NombreRazon> <xsl:value-of select= "JEES_SSI/LIST_G_LE_DETAILS/G_LE_DETAILS/ENTITYNAME" /> </sii:NombreRazon> <sii:NIF> <xsl:value-of select= "JEES_SSI/LIST_G_LE_DETAILS/G_LE_DETAILS/TAXPAYERID" /> </sii:NIF> </sii:Titular> </sii:Cabecera> </xsl:element>

我在这个问题上遇到的唯一答案是Genymotion与ADB不同步,但我不使用Genymotion。任何帮助将不胜感激。我已经擦除并重新安装了Android Studio及其所有工具和设置,但似乎仍有这个问题。

9 个答案:

答案 0 :(得分:78)

这对我有用......

  • 转到GenyMotion设置 - &gt;亚行选项卡
  • 而不是使用Genymotion Android工具,选择自定义Android SDK工具,然后浏览已安装的SDK。

答案 1 :(得分:43)

在我的情况下,当我将我的环境adb路径设置为~/.android-sdk/platform-tools时出现此错误(例如当安装了自制软件时安装了android-platform-tools),该版本为36,但Android Studio项目有Android SDK下一个路径~/Library/Android/sdk,adb版本为39。

我已将PATH更改为平台工具~/Library/Android/sdk/platform-tools,错误已解决

答案 2 :(得分:13)

首先,请从标题中删除“{Not using Genymotion}”。它分散了像我这样不知道Genymotion是什么的读者。荒谬的是,你得到一个答案,得到21分,说“去GenyMotion设置”......

所有其他人都遗漏的要点是,当您在后台运行 adb 进程时,您将收到此错误。所以第一步是找到并杀死它:

ps aux | grep adb
user          46803   0.0  0.0  2442020    816 s023  S+    5:07AM   0:00.00 grep adb
user          46636   0.0  0.0   651740   3084   ??  S     5:07AM   0:00.02 adb -P 5037 fork-server server

找到它后,可以使用kill -9 46636将其删除。

就我而言,问题是来自GapDebug的旧版 adb 。如果你用GapDebug得到了它,那就离开吧,然后再做

adb kill-server
adb start-server

因为GapDebug在后台,当你杀死 adb 服务器时,GapDebug会立即启动它自己的副本,导致启动服务器被忽略

答案 3 :(得分:7)

您有两个版本的ADB $ /usr/local/bin/adb version Android Debug Bridge version 1.0.36 Revision 0e9850346394-android

$ /Users/user/Library/Android/sdk/platform-tools/adb version Android Debug Bridge version 1.0.39 Revision 3db08f2c6889-android

您可以看到PATH指向哪一个(echo $PATH),但我在一个版本上修复了adb stop-server而在另一个版本上修复了adb start-server

答案 4 :(得分:6)

为了增加另一个潜在的解决方案,Clockiummod的Helium拥有自己的内置ADB版本,并且一直在启动。退出Helium Desktop应用程序可以解决问题。

答案 5 :(得分:5)

我有同样的错误。就我而言,使用Appium,我有两个版本的ADB

$ /usr/local/bin/adb第36版

$ /Users/user/Library/Android/sdk/platform-tools/adb第39版

解决方案是:

  1. 确保bash_profile中的$ PATH指向:/Users/user/Library/Android/sdk/platform-tools/

  2. 停止adb服务器:adb kill-server并检查Appium是否已停止。

  3. 删除adb版本36(或者您可以将其重命名为备份):rm /usr/local/bin/adb

  4. 启动adb服务器:adb start-server或刚刚启动Appium

答案 6 :(得分:5)

我在Android Studio遇到了同样的问题 - adb服务器版本(37)与此客户端不匹配(39)。我通过以下解决方案修复:

在Android Studio中,转到工具 - &gt; Android - &gt; SDK Manager

在SDK工具选项卡中取消选中Android SDK Platform-Tools,单击Apply以卸载。

然后我将Platform-Tools文件夹重命名为Platform-ToolsOld

然后返回SDK Manager重新勾选Platform-Tools以重新安装。

答案 7 :(得分:3)

我认为你有多个adb服务器在运行,genymotion可能是其中之一,而且Xamarin - Mac OS的Visual Studio可以运行adb服务器,关闭Visual Studio为我工作

答案 8 :(得分:3)

正如其他人所说,你可以运行两个adb ...并从Linux盒子的角度添加这些答案(对于从Linux工作的下一个新手);

  1. 卸载发行版的android工具(使用zypper或yum等)

    # zypper -v rm android-tools
    
  2. 查找您的其他adb

    的位置
    # find /home -iname "*adb"|grep -i android
    

    说它是在;

    /首页/开发商/安卓/ SDK /平台工具/亚行

  3. 然后在/ usr / bin文件夹中建立一个软链接

     ln -s /home/developer/Android/Sdk/platform-tools/adb  /usr/bin/adb
    
  4. 然后;

     # adb start-server