错误:SWT文件夹''不存在。请设置ANDROID_SWT ..在SDK更新后获取此错误

时间:2013-09-06 16:17:13

标签: android mobile sdk

SDK Manager更新上一版本后,我的android sdk manager无效,sdk manager.exe在更新前正确运行。现在,当我在命令行上运行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

10 个答案:

答案 0 :(得分:20)

我添加了这一行:

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

在我的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

SDK Manager.exe现在正确运行:D!

答案 1 :(得分:9)

删除

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

答案 2 :(得分:3)

添加此行 - :

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

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

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  

在以下几行之后:

set swt_path=lib\x86_64

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

set swt_path=lib\x86

Collection

答案 3 :(得分:2)

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

答案 4 :(得分:1)

其实Google在这里犯了一个错误,请在#27行的“\ sdk \ tools \ lib”文件夹中打开find_java.bat,其中显示:

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

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

答案 5 :(得分:0)

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

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

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

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

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

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

答案 6 :(得分:0)

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

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

步骤:

  • Windows + Pause Break
  • 高级设置
  • 点击名为PATH的变量
  • 如果不存在,请添加C:\Windows\System32。别忘了添加 添加内容之前的分隔符;

打开android.bat

答案 7 :(得分:0)

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

答案 8 :(得分:0)

我刚刚通过添加

解决了这个问题
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)

答案 9 :(得分:0)

<块引用>

我知道为时已晚,但它会帮助其他人,

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

你需要改变

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

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

  1. 您的用户名 就我而言:**C:\Users\SomeOne\AppData\Local\Android\Sdk\tools\lib\monkeyrunner-26.0.0-dev.jar

  2. 如果你使用的是 64 位系统,那么将 set swt_path 更改为:

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

如果是 32 位更改为: 设置 swt_path=C:\Users\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% %*