批处理文件-android.bat打开SDK Manager,而SDK Manager.exe不打开



在过去的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

基本上,要做两件事:

  1. 将java_exe变量设置为java.exe路径

  2. 删除或注释行:"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,现在它就像一个魅力。

最新更新