我知道这是一篇旧文章,但我想针对这个问题写我的个人解决方案:
无法将目录C:\ android-sdk \ tools重命名为C:\ android-sdk \ temp \ ToolPackage.old01。
显然,我遇到过同样的问题,每次需要更新Android工具时,这都是一场噩梦。
我发现使用谷歌搜索网络的所有解决方案现在都无法解决我的问题,但这对于维持Android SDK的更新至关重要。 因此,我开始寻找一种替代的工作方式来解决此问题,但我终于找到了……至少……它对我有用,即使有点棘手。
基本问题是android.bat批处理文件来自〜\ tools \文件夹,并且仍在内存中(正在运行),而相同的〜\ tools \文件夹需要更新(在本例中为重命名)。
问题是android.bat运行Java来启动swt.jar(SDK工具),并且它仍然无用地等待此Java程序的完成。
您可以编辑android.bat并在此批处理的最新行中查看调用:
call "%java_exe% %REMOTE_DEBUG%" "-Dcom.android.sdkmanager.toolsdir=%tools_dir%" "-Dcom.android.sdkmanager.workdir=%work_dir%" -classpath "%jar_path%;%swt_path%\swt.jar" com.android.sdkmanager.Main %*
问题是“调用” CMD命令。 它等待被调用的外部程序完成。
但是还有另一种从批处理文件运行外部程序的方法:“启动”命令。 它启动一个外部程序并终止。
因此,我只是将“ call”命令替换为“ start”,因此更改后,android.bat的最新行是:
start "" "%java_exe% %REMOTE_DEBUG%" "-Dcom.android.sdkmanager.toolsdir=%tools_dir%" "-Dcom.android.sdkmanager.workdir=%work_dir%" -classpath "%jar_path%;%swt_path%\swt.jar" com.android.sdkmanager.Main %*
注意:在开始和应用程序路径之间保留“”。 您可以在这些连字符中添加文本,这些文本将是更改后将看到的java.exe命令窗口的标题。 在我的情况下,我将标题留为空字符串,但您可以在其中写入所需内容。
更改之后,您可以启动SDK,而android.bat将不再等待,从而可以自由使用SDK工具(并重命名〜\ tools \文件夹)。
显然,在更新SDK工具之后,您必须在新的更新的android.bat批处理文件中重做相同的更改。 这可能有点令人困惑,但是您只需要记住在运行SDK工具之前进行更改,并且在更新Android时不会有其他麻烦。