14

更新到最后一个版本后我的SDK Manager不工作,sdk manager.exe在更新前运行正常。android sdk manager现在,当我android.bat在命令行上运行时收到此消息:

ERROR: SWT folder '' does not exist. Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.

你能给我一个解决方案或一些指令来改变我的android.bat吗

4

10 回答 10

21

I added this line :

set java_exe=C:\Windows\System32\java.exe

after this lines in my android.bat :

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

the SDK Manager.exe run correctly now :D !

于 2013-09-06T17:38:31.013 回答
10

删除

for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

添加,如果您使用 x86_64 系统

set swt_path=lib\x86_64

否则

set swt_path=lib\x86
于 2014-12-13T15:03:09.480 回答
3

添加这一行 - :

set java_exe=%JAVA_HOME%\bin\java.exe

在您的 android.bat 中的这些行之后:

set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF

这条线-:

set swt_path=lib\x86_64

在这些行之后:

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  

如果您的系统是 32 位,请更改

set swt_path=lib\x86_64

set swt_path=lib\x86
于 2015-06-17T12:51:15.927 回答
2

转到windows环境变量设置,创建一个新的(如果它已经存在,编辑旧的)变量,名称为:JAVA_HOME并将值添加到您安装的JDK路径中,例如:
C:\Program Files\Java\jdk1.7.0_45\并将其添加到路径变量的末尾:%JAVA_HOME%/bin

于 2014-02-15T11:26:10.777 回答
1

其实谷歌在这里做错了,请打开文件夹“\sdk\tools\lib”中的find_java.bat,在#27行,显示:

find /i "x86" > NUL && set arch_ext=32 || set arch_ext=64

删除“arch_ext=32”和“||”之间的空白,如“arch_ext=32||”,重新打开cmd,所有工具都可以正常工作。

于 2014-12-24T02:12:17.920 回答
1

我只是通过添加来解决这个问题

echo GHETTO NOGGAR RAGGED OVERRIDE ANDROID_SWT
set ANDROID_SWT=C:\NVPACK\android-sdk-windows\tools\lib\x86_64
echo %ANDROID_SWT%

就在之前

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

在我的 android.bat 中(CodeWorks 1r5 将其安装到 C:\NVPACK\android-sdk-windows\tools )

于 2017-01-09T21:09:36.813 回答
0

我有同样的错误信息。我只是恢复 android-sdk/tools 然后一切正常。

于 2016-05-29T12:52:19.653 回答
0

我以前也遇到过这个问题。在对 android.bat 进行了一些修改后,我发现 archquery jar 的相对路径有些奇怪。所以我最终改变了:

对于 /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') 设置 swt_path=lib\%%a

对于 /f "delims=" %%a in ('"%java_exe%" -jar %~dp0\lib\archquery.jar') 设置 swt_path=lib\%%a

(%~dp0 是窗口神奇的当前脚本目录变量)

不幸的是,当您更新 sdk 工具时,此更改将被清除,因此您必须每次都进行。希望我知道为什么需要进行此更改(也许其他人知道更多),但是此修复适用于我需要打开 SDK 管理器与更新的频率

我解决了这个问题,其他解决方案对我不起作用

于 2016-04-06T03:36:00.187 回答
0

如果你得到"xcopy' is not recognized as an internal or external command"

这对我有用。添加C:\Windows\System32到名为 PATH 的 Windows 环境变量中。

脚步:

  • Windows+暂停休息
  • 高级设置
  • 单击名为 PATH 的变量
  • 如果不存在添加C:\Windows\System32. 不要忘记在;添加内容之前添加分隔符

打开android.bat

于 2016-04-14T00:23:55.010 回答
0

我知道它很晚,但它会帮助别人,

它令人困惑,所以我分享我的文件

你需要改变

  1. 将 java_exe= 设置为您安装的 java 位置

在我的情况下:设置 java_exe=C:\Program Files\Java\jdk1.8.0_271\bin\java.exe

  1. <Your_User_Name>您的用户名 在我的情况下:**C:\Users\SomeOne\AppData\Local\Android\Sdk\tools\lib\monkeyrunner-26.0.0-dev.jar

  2. 如果 U 有 64 位系统,则将set swt_path更改为:

设置 swt_path=C:\Users<Your_User_Name>\AppData\Local\Android\Sdk\tools\lib\x86_64\swt.jar

如果 32 位更改为: 设置 swt_path=C:\Users<Your_User_Name>\AppData\Local\Android\Sdk\tools\lib\x86\swt.jar

这是我的工作文件

@echo off
rem Copyright (C) 2010 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 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 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=C:\Program Files\Java\jdk1.8.0_271\bin\java.exe
call ..\lib\find_java.bat
if not defined java_exe goto :EOF

for /f %%a in ("C:\Users\<Your_User_Name>\AppData\Local\Android\Sdk\tools\lib\monkeyrunner-26.0.0-dev.jar") do set jarfile=%%~nxa
set frameworkdir=.
set libdir=

if exist %frameworkdir%\%jarfile% goto JarFileOk
    set frameworkdir=lib

if exist %frameworkdir%\%jarfile% goto JarFileOk
    set frameworkdir=..\framework

:JarFileOk

set jarpath=%frameworkdir%\%jarfile%

if not defined ANDROID_SWT goto QueryArch
    set swt_path=C:\Users\<Your_User_Name>\AppData\Local\Android\Sdk\tools\lib\x86_64\swt.jar
    goto SwtDone

:QueryArch

    for /f "delims=" %%a in ('%frameworkdir%\..\bin\archquery') do set swt_path=C:\Users\<Your_User_Name>\AppData\Local\Android\Sdk\tools\lib\x86_64\swt.jar


:SwtDone

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

:SetPath

call "%java_exe%" -Xmx512m "-Djava.ext.dirs=%frameworkdir%;%swt_path%" -Dcom.android.monkeyrunner.bindir=..\framework -jar %jarpath% %*
于 2021-03-20T07:30:03.583 回答