安卓SDK突然停止工作

6
几个月没有进行Android开发后,我昨天运行了SDK Manager并将其从r16升级到r18。在升级之后,一切都停止工作了。我从谷歌下载了一个全新的SDK工具副本。Windows安装程序报错说没有安装Java(这里的解决方案曾经可以使用,但现在不再适用)。
我改为下载ZIP文件并将其放置在正确的位置。运行SDK Manager.EXE没有任何反应(它立即返回命令提示符)。运行tools\android.bat会出现错误,指出“无法将路径转换为短DOS路径:c:\windows\system32\java.exe”,然后建议我安装Java。
我正在运行Windows 7 64位,并且已经正确安装了Java 1.7(64位)(Eclipse运行良好,Android工具r16直到昨天也很好用)。c:\windows\system32\java.exe存在并且正常工作。
我做错了什么?
更新:我找到了一个旧的r16设置程序。我安装了它,一切都恢复正常了。

我曾经遇到过类似的问题,你尝试手动更改注册表了吗?https://dev59.com/eG855IYBdhLWcg3wYTH_#4739559 - Sam
我刚才试了一下,但什么都没改变。 - zmbq
我曾经也遇到过JDK PATH变量的问题:http://docs.oracle.com/javase/tutorial/essential/environment/paths.html - Sam
5个回答

23

我把这个问题搁置了一段时间,但现在我必须让它重新运行。我不想在已经安装了64位Java虚拟机的情况下再安装32位的。

我找到了罪魁祸首。在 android_sdk\tools\lib 目录下,有一个名为 find_java.bat 的批处理文件。它调用 find_java.exe -s 来查找可能的Java位置列表。像这样运行exe文件会返回我一直看到的错误:

Failed to convert path to short DOS path: c:\windows\system32\java.exe

-s代表短选项。没有使用-s选项会导致find_java.exe工作,从而使find_java.bat工作,进而导致其他一切正常工作。因此,修复方法是编辑find_java.bat文件并删除-s选项。

老实说,我不知道Google在想什么。


3
太好了,我也遇到了同样的问题。也许谷歌认为没有人应该使用Windows... - Miguel Angel

3

2

这只是一个猜测,但我建议您安装JDK 6。在SDK要求中说必须使用它。我记得我安装了JDK 7,也遇到了一些问题。

另外,使用32位版本更安全。


直到昨天,我对JDK 7和64位没有任何问题。为什么会出问题呢?除非我非常必须,否则我真的不想安装两个Java平台。 - zmbq
@zmbq 显然,他们依赖于JDK 6的某些特定行为,或者由于某种原因不希望针对JDK 7测试其代码。你很幸运一切都正常工作,但不幸的是这并不总是情况。顺便说一下,我记得JDK 7的问题所在:我无法签署我的APK。 - Malcolm
好的,我会尝试降级到JDK 6(我不需要JDK 7的额外功能)。 - zmbq
降级到JDK 6(64位版本)并没有起作用 - 错误完全相同。 - zmbq
@zmbq 如我所说,最好尝试32位版本。 - Malcolm

0

我通过将jdk路径添加到环境变量的PATH变量中,成功解决了类似的问题。


0
您还需要通过“帮助”>“安装新软件”更新Eclipse插件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接