得,今天又折腾一下午,就为搞定这个 。本来想着更新个安卓开发工具里的东西,挺简单个事儿,结果点开那个 SDK *
,好家伙,就跟害羞的小姑娘似的,闪一下就没影,根本不给你看清楚的机会。
遇到这情况,咱也不能干等着。第一反应就是,是不是哪里配置出问题?老规矩,先试试直接从命令行跑跑看,有时候能蹦出点错误提示来。我就打开那个黑乎乎的命令窗口,切换到安卓SDK安装目录下的 tools
文件夹,试着运行一下里面的 文件。你猜怎么着?果然报错!不像双击 SDK *
那样直接消失,这回它好歹留句话。
错误信息挺长的,但关键地方我瞅见,大概意思是“Failed to convert path to a short DOS path”,后面跟着一个路径,指向的是 C:\windows\system32\*
。看到这个我就有点印象,以前好像在哪见过类似的说法。
检查问题所在
这个 system32
目录下的 是个老问题。有时候装其他软件,或者Java自己安装的时候没弄就会往系统目录里塞几个Java相关的文件,比如:
这些家伙杵在那里,有时候就会跟咱们自己正经安装的JDK或者JRE路径打架,导致一些依赖Java环境的程序,比如这个SDK管理器,找不到正确的Java路径,或者路径转换出问题,然后就启动失败,直接闪退。
动手解决
知道问题可能出在哪,那就好办。我赶紧打开我的电脑,找到 C:\Windows\system32\
这个文件夹。进去一翻,果然,那几个 、、 文件正好好地躺在那儿。
直接删掉! 没啥犹豫的,选中这几个文件,右键,删除。删除系统目录下的东西得小心点,确认是这几个Java相关的文件再动手。删完之后,心里还是有点不踏实,怕没删干净或者还有别的问题。
为保险起见,我又去检查一下环境变量,特别是 JAVA_HOME
和 Path
这两个。看看,JAVA_HOME
指向的是我自己安装的JDK目录,Path
里面也包含 %JAVA_HOME%\bin
,这块看起来是没问题的。
然后我又想起来,之前看有人提到过 tools\lib
目录下有个叫 find_*
的脚本,说是可以修改这个脚本来指定Java路径。不过既然错误提示直接指向 system32
下的Java,而且我已经删,就想着先不改那个脚本,看看删掉文件后效果怎么样。
最终结果
清理完 system32
目录下的那几个捣乱的Java文件后,我重新回到安卓SDK的 tools
目录,再次双击运行 SDK *
。
这回成! 熟悉的SDK管理界面终于弹出来,稳稳地停在屏幕上,没有再闪退。总算是能正常更新和管理我的安卓SDK组件。
你说这事儿,就因为系统目录里多几个不该有的文件,折腾半天。有时候解决电脑问题就跟探案似的,得一步步排查,找到那个隐藏的“真凶”。记录一下这回的经历,下次再碰到类似闪退的问题,也算是有个方向。