sdk\tools 文件夹中缺少 Android.bat 文件,而且我在工具中没有 AVD 和 SDK 管理器,因此我可以替换它们

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/24949446/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-20 08:57:36  来源:igfitidea点击:

Android.bat file is missing in sdk\tools folder also i do not having AVD & SDK manager in tools so i can replace them

androidandroid-sdk-2.3

提问by Rakshit Soni

i have also copied android.bat from my backup SDK but it is still not working. thanks in advance.

我还从我的备份 SDK 中复制了 android.bat,但它仍然无法正常工作。提前致谢。

回答by Sndn

Probably all the contents of the sdk/tools folder are missing as well?

可能 sdk/tools 文件夹的所有内容也都丢失了?

Best method to solve this issue is to go to the sdk/temp folder. There you will find a zip file with a name like "tools_r24.0.1-windows" (version number will be different)

解决此问题的最佳方法是转到 sdk/temp 文件夹。在那里你会找到一个名为“tools_r24.0.1-windows”的zip文件(版本号会有所不同)

Copy it to someplace and extract it. Inside the extracted folder you'll have a folder named 'tools'

将其复制到某个地方并解压缩。在提取的文件夹中,您将有一个名为“工具”的文件夹

Copy that folder to sdk/ and replace the current tools folder in sdk/

将该文件夹复制到 sdk/ 并替换 sdk/ 中的当前工具文件夹

And voila! SDK and AVD will work again and all your virtual devices will be restored!

瞧!SDK 和 AVD 将再次运行,您的所有虚拟设备都将恢复!

回答by Moosa Baloch

The Best Solution i have is download the SDK Tools Only From: http://developer.android.com/sdk/index.html

我拥有的最佳解决方案是仅从以下位置下载 SDK 工具:http: //developer.android.com/sdk/index.html

->Other Download Options->SDK Tools Only->android-sdk_r24.*.*-windows.zip
Update:Web content updated now you need to go to the section below

->其他下载选项->仅SDK工具->android-sdk_r24.*.*-windows.zip
更新:网页内容已更新,您需要转到以下部分

"Get just the command line tools" (Download tools according to your operating system)

“仅获取命令行工具”(根据您的操作系统下载工具)

.
and extract it into your sdk location where the tools required.

.
并将其解压缩到需要工具的 sdk 位置。

回答by Christian Hennig

I actually don't understand, why you don't download it from somewhere else, but here is the Android.bat:

我其实不明白,为什么你不从其他地方下载它,但这里是 Android.bat:

@echo off
rem Copyright (C) 2007 The Android Open Source Project
rem
rem Licensed under the Apache License, Version 2.0 (the "License");
rem you may not use this file except in compliance with the License.
rem You may obtain a copy of the License at
rem
rem      http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.

rem Useful links:
rem Command-line reference:
rem   http://technet.microsoft.com/en-us/library/bb490890.aspx

rem don't modify the caller's environment
setlocal

rem Set up prog to be the path of this script, including following symlinks,
rem and set up progdir to be the fully-qualified pathname of its directory.
set prog=%~f0

rem Grab current directory before we change it
set work_dir=%cd%

rem Change current directory and drive to where the script is, to avoid
rem issues with directories containing whitespaces.
cd /d %~dp0


rem Check we have a valid Java.exe in the path.
set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF

set jar_path=lib\sdkmanager.jar;lib\swtmenubar.jar

rem Set SWT.Jar path based on current architecture (x86 or x86_64)
for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

:MkTempCopy
    rem Copy android.bat and its required libs to a temp dir.
    rem This avoids locking the tool dir in case the user is trying to update it.

    set tmp_dir=%TEMP%\temp-android-tool
    xcopy %swt_path% %tmp_dir%\%swt_path% /I /E /C /G /R /Y /Q > nul
    copy /B /D /Y lib\common.jar         %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\commons-codec*     %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\commons-compress*  %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\commons-logging*   %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\dvlib.jar          %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\guava*             %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\httpclient*        %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\httpcore*          %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\httpmime*          %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\layoutlib-api.jar  %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\org-eclipse-*      %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\sdk*               %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\swtmenubar.jar     %tmp_dir%\lib\        > nul

    rem jar_path and swt_path are relative to PWD so we don't need to adjust them, just change dirs.
    set tools_dir=%cd%
    cd /d %tmp_dir%

:EndTempCopy

rem The global ANDROID_SWT always override the SWT.Jar path
if defined ANDROID_SWT set swt_path=%ANDROID_SWT%

if exist "%swt_path%" goto SetPath
    echo ERROR: SWT folder '%swt_path%' does not exist.
    echo Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
    goto :EOF

:SetPath
rem Finally exec the java program and end here.
REM set REMOTE_DEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
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 %*

rem EOF

回答by Ross Vernal

I ended up downloading the Android Studio Bundle (android-studio-bundle-143.2915827-windows.exe), then I opened that with 7Zip and in the $TEMP directory, there is an android-sdk.7z file. I extracted that and copied the tools folder back in.

我最终下载了 Android Studio Bundle (android-studio-bundle-143.2915827-windows.exe),然后我用 7Zip 打开它,在 $TEMP 目录中,有一个 android-sdk.7z 文件。我提取了它并将工具文件夹复制回。

I wasn't sure how I'd deleted it but I've got one of these HiDpi screens, and when I opened the SDK Manager, I thought I'd click the "update" button, but it turns out you can't see the whole word, and it's actually the "delete" button.

我不确定我是如何删除它的,但我有这些 HiDpi 屏幕之一,当我打开 SDK 管理器时,我以为我会点击“更新”按钮,但事实证明你不能查看整个单词,它实际上是“删除”按钮。

Quite why a tool allows self-deletion is beyond me.....

为什么一个工具允许自我删除是我无法理解的......

Android SDK Manager - see buttons at bottom right

Android SDK Manager - see buttons at bottom right

回答by Dawit

Here is the actual path for tools folder and android.bat file from google.

这是来自 google 的工具文件夹和 android.bat 文件的实际路径。

https://android.googlesource.com/platform/prebuilts/devtools/+/jb-mr2-dev/tools/

https://android.googlesource.com/platform/prebuilts/devtools/+/jb-mr2-dev/tools/

https://android.googlesource.com/platform/prebuilts/devtools/+/jb-mr2-dev/tools/android.bat

https://android.googlesource.com/platform/prebuilts/devtools/+/jb-mr2-dev/tools/android.bat

UPDATE: you can clone the devtools folder and get all the files from there

更新:您可以克隆 devtools 文件夹并从那里获取所有文件

git clone https://android.googlesource.com/platform/prebuilts/devtools

Spending more than half a day trying to setup Java, Android, Environment variables and copy pasting .bat files is not acceptable. Hope this saves someone some time.

花费超过半天时间尝试设置 Java、Android、环境变量和复制粘贴 .bat 文件是不可接受的。希望这可以节省一些时间。