在过去的48小时里,我一直在努力解决这个问题,这让我发疯了。
我的SDK Manager.exe会闪烁cmd屏幕,并在不到一秒钟的时间内关闭。
经过多次搜索,我终于在调整android.bat并以管理员身份运行后,打开了我的SDK Manager。
但是,SDK Manager.exe找不到android.bat,所以我将其复制到android SDK文件夹中。
SDK Manager.exe现在可以找到android.bat,但它仍然会短暂闪烁cmd,然后关闭。
我的PATH变量的第一个条目是我的jdk java.exe目录,我已经重新启动并重新安装了好几次。
是什么原因造成的?为什么我可以从android.bat打开管理器,而不能从可执行文件打开?
我正试图将Eclipse配置为使用SDK Manager,但显然我做不到,因为可执行文件拒绝打开。
Eclipse还告诉我adb.exe丢失了,在检查平台后,我已经确认了这一点。我认为adb.exe将从SDK管理器安装?
编辑:经过思考,我认为问题可能与android.bat的权限有关。它必须以管理员身份运行才能工作,否则如果定期打开,它会说"拒绝访问"。
有可能改变这一点吗?查看android.bat的属性,我已经调整了我的帐户以完全控制。不过,这并没有影响这个问题。
我在一些机器上遇到过这种情况,但在其他机器上没有。这是一个奇怪的问题,我相信它与一个android文件(android.bat?)中的路径问题有关。
为什么这种情况会发生在一些安装上,而不是其他安装上,我还没有弄清楚。我已经阅读了我在这里和互联网上能找到的一切,尝试了许多不同的解决方案,包括安装JDK6和7的另一个版本,修改路径变量,添加JAVA_HOME变量,等等,但都没有成功。
这在Windows 7中对我有效…
1) 在SDK文件夹中添加"SDK Manager.exe"文件的副本(因此它位于工具、平台等文件夹旁边),然后运行它。您仍然会看到命令窗口"闪烁"一秒钟,然后消失,但请耐心等待,SDK管理器会出现。
2) 创建一个指向SDK Manager.exe"内部"副本的快捷方式,并将其移动到您想要的位置;它现在知道在哪里可以找到文件,并且每次都能正常工作。我的桌面上有一份,但你把它放在哪里并不重要。
注意:某个地方仍然存在问题,这可能与谷歌有关,但这似乎发生在一些人身上,无论他们在什么时候安装,而其他人则完全没有问题。
这可能不是我们需要谷歌修复它的答案,但它可以在不卸载/重新安装java或SDK、修改/添加变量、修改android.bat、更改路径、以管理员身份运行等情况下工作,最棒的是它很容易。太糟糕了,我们中的许多人都浪费了几个小时的时间来修复它
祝你好运!
注意:我在下面添加了关于x64计算机的评论。这很奇怪,但当我们在一台x64(OS/ADT)机器上尝试时,它没有工作。我刚刚在一台32位安装的机器上尝试了Java 7 x64和ADT x64的新安装(这意味着我现在在同一台机器上同时安装了Java和ADT的32位和64位),同样,它运行良好。一个短暂的闪光,它消失了,然后SDK管理器按预期打开。神秘还在继续。:)
当我将android SDK工具更新到23.0.2时,我也遇到了同样的问题。花了很多时间(大约6个小时)试图找到解决方案。。。我找到了它,但仍然不确定它是如何工作的。
它与android SDK目录的tools文件夹中的android.bat文件有关,行:
set java_exe=
call libfind_java.bat
我将行修改为以下值:
set java_exe=pathwhereyoufindjavaexe
REM call libfind_java.bat
基本上,要做两件事:
将java_exe变量设置为java.exe路径
删除或注释行:"call-lib\find_java.bat"
我评论了第二行,这样它就不会通过find_java.bat重新设置我的java_exe变量,并手动将我的java_exe变量设置为我的java.exe文件所在的位置。如果你不知道(或忘记了)你的java.exe在哪里,请尝试使用windows搜索它。
我的java.exe路径与使用find_java.bat找到的路径不同。我的实际路径:
U:PortableAppsCommonFilesJavabinJava.exe
路径find_java.bat将其设置为:
C:Windowssystems32java.exe
注意:我通过在行下面添加以下命令,了解了"call-lib\find_java.bat"设置java_exe变量的路径:
echo %java_exe%
pause
我不确定这是否是某种权限或访问错误,或者这个解决方案只对我有效,因为我的java JDK在USB设备上等等。好吧,如果其他人遇到这个问题,试试我的解决方案,看看它是否也适用于你们。
我也遇到了同样的问题!
我已经安装了64位ADT捆绑包,所以我下载了Java 64位。我搞砸了路径和东西,但最终修复它的是安装了Java 32位。
简单的解决方法是安装两个版本。您可以在此处手动下载它们。
祝你好运!
我不知道它是否能解决你的问题,但请确保你已经为同一个位系统安装了jre、jdk和android sdk(我的意思是这三个都适用于32或64位系统)。我曾经有一个基于此的android问题!如果您将它们用于一个系统,请尝试重新安装它们。我也遇到了类似的问题,在将所有版本都更改为64位后,它就工作了。希望我能帮助你。
当您"以管理员身份运行"时,当前目录会更改,因为您正在模拟另一个用户。为了证明这一点,在bat文件的顶部放上以下行:
echo.CD=%CD% & pause
然后以普通用户的身份执行您的bat文件并观察结果。
现在通过"以管理员身份运行"执行bat文件,并注意CD已更改为C:\Windows\system32(典型)。
修复方法很简单。在bat文件中放入以下行以恢复当前目录:
pushd %~dp0
它需要在您引用任何文件/文件夹之前。我通常会把这一行放在所有可能是"以管理员身份运行"的bat文件的顶部附近。如果用于旧的(XP)操作系统,它不会造成任何伤害。
我在Windows 8.1 64位和JDK8上也遇到了同样的问题。我卸载了JDK8x64并安装了JDK8i586,现在它就像一个魅力。