Android SDK/Android.bat не находит файл SWT.jar

Это продолжение проблемы Менеджер SDK не находит java, но теперь проблема в SDK/android.bat не находит SWT файл.


Я запускаю Windows 7 x64, мои файлы расположены следующим образом:

Android SDK (zip version) - C:\android-sdk-windows

SWT.jar (from the Zip)    - C:\android-sdk-windows\tools\lib\x86
                            C:\android-sdk-windows\tools\lib\x86_64

JDK 6 u24 x64             - C:\Program Files\Java\jdk1.6.0_24

Мои переменные среды выглядят следующим образом:

ANDROID_SWT = C:\android-sdk-windows\tools\lib\x86_64

Path        = ;C:\Program Files\Java\jdk1.6.0_24\bin

Я пытаюсь решить следующую проблему.

После выполнения диспетчера Android SDK черный командный экран быстро мигает и исчезает, он не запускает SDK, поэтому я не могу загрузить ни одну из платформ и дополнений.

Обратите внимание, что у меня есть эти файлы уже из zip (платформы и рекламные объявления)

Я проследил виновника в файле android.bat, но, похоже, не понял его. Я установил переменную окружения для файла SWT.jar.
Я до сих пор не модифицировал файл .bat.


Ниже приведен мой 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 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

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

if "%1 %2"=="update sdk" goto StartUi
if not "%1"=="" goto EndTempCopy
:StartUi
echo [INFO] Starting Android SDK and AVD Manager

rem We're now going to create a temp dir to hold all the Jar files needed
rem to run the android tool, copy them in the temp dir and finally execute
rem from that path. We do this only when the launcher is run without
rem arguments, to display the SDK Updater UI. This allows the updater to
rem update the tools directory where the updater itself is located.

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\androidprefs.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\common.jar         %tmp_dir%\lib\        > nul
copy /B /D /Y lib\commons-compress*  %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.
call %java_exe% -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

Это то, что я получаю от выполнения файла bat с помощью командной строки

C:\Users\MuniFC Portable11>C:\android-sdk-windows\tools\android.bat
[INFO] Starting Android SDK and AVD Manager
'xcopy' is not recognized as an internal or external command, operable program or batch file.
No command line parameters provided, launching UI.
See 'android --help' for operations from the command line.
java.lang.NullPointerException
    at com.android.sdklib.internal.avd.AvdManager.parseAvdInfo(AvdManager.java:1205)
    at com.android.sdklib.internal.avd.AvdManager.buildAvdList(AvdManager.java:1184)
    at com.android.sdklib.internal.avd.AvdManager.<init>(AvdManager.java:385)
    at com.android.sdkuilib.internal.repository.UpdaterData.initSdk(UpdaterData.java:238)
    at com.android.sdkuilib.internal.repository.UpdaterData.<init>(UpdaterData.java:114)
    at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.<init>(UpdaterWindowImpl.java:86)
    at com.android.sdkuilib.repository.UpdaterWindow.<init>(UpdaterWindow.java:42)
    at com.android.sdkmanager.Main.showMainWindow(Main.java:302)
    at com.android.sdkmanager.Main.doAction(Main.java:281)
    at com.android.sdkmanager.Main.run(Main.java:99)
    at com.android.sdkmanager.Main.main(Main.java:88)`

Если у вас есть какая-то идея о том, как исправить это, было бы замечательно!


UPDATE

исправлена ​​проблема xcopy, добавив переменные C:\windows\system32 к моим путям, теперь оставшаяся проблема - это SWT

Запуск командной строки - Android.bat =

C:\Users\MuniFC Portable11>C:\android-sdk-windows\tools\android.bat
[INFO] Starting Android SDK and AVD Manager
No command line parameters provided, launching UI.
See 'android --help' for operations from the command line.
java.lang.NullPointerException
        at com.android.sdklib.internal.avd.AvdManager.parseAvdInfo(AvdManager.java:1205)
        at com.android.sdklib.internal.avd.AvdManager.buildAvdList(AvdManager.java:1184)
        at com.android.sdklib.internal.avd.AvdManager.<init>(AvdManager.java:385)
        at com.android.sdkuilib.internal.repository.UpdaterData.initSdk(UpdaterData.java:238)
        at com.android.sdkuilib.internal.repository.UpdaterData.<init>(UpdaterData.java:114)
        at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.<init>(UpdaterWindowImpl.java:86)
        at com.android.sdkuilib.repository.UpdaterWindow.<init>(UpdaterWindow.java:42)
        at com.android.sdkmanager.Main.showMainWindow(Main.java:302)
        at com.android.sdkmanager.Main.doAction(Main.java:281)
        at com.android.sdkmanager.Main.run(Main.java:99)
        at com.android.sdkmanager.Main.main(Main.java:88)

C:\Users\MuniFC Portable11>

Ответ 1

После добавления C:\windows\system32 в PATH xcopy ошибка исчезла, но у android.bat все еще была проблема с swt.jar. Удаление переменной ANDROID_SWT работало для меня.

Ответ 2

У меня с вами такая же проблема.

Наконец, я очищаю эту проблему, переименовывая папку java и android sdk без пустого char.

В начале, java установлен в D:\Program Files\Java и android sdk установлен в D:\Program Files\Android.

Измените на D:\Java и D:\Android соответственно и добавьте D:\Java\jdk1.7.0_04\bin в PATH, и он появляется.

Ответ 3

У меня была одна и та же проблема, и очистка avd-папки (конфигурации виртуальных устройств) работает для меня... вы должны попробовать. Швы, что проблема была поврежденным avd, которые вызывают ошибку android.bat script при анализе.

Ответ 4

Просто удалите .android из вашей папки с профилем Windows, и он должен работать, поскольку это сработало для меня.

Ответ 5

ОК, поэтому у меня возникла эта проблема и в переменных среды ANDROID_SWT = libx86_64, и переместил android и java в c:\Я также не изменял android.bat в рабочем исправлении.

Ответ 6

Я запускаю студию Android x64 на windows 8.1 pro x64. Установлен JDK 8 x64.

У меня была такая же проблема с AVD из Android Studio. Ниже приведено исправление:

Изменить переменные системной среды... используя поиск в Windows просто введите переменные среды и откроет редактор. Добавьте новую системную переменную под названием ANDROID_SWT. Если уже нет необходимости добавлять другого. Установите "значение переменной" в путь, где находится swt.jar. Я нашел его через:

C: \.... андроида-студия\SDK\Tools\Lib\x86_64\swt.jar

Затем я просто скопировал и вставил этот путь в новое (или существующее) значение системных переменных ANDROID_SWT. Затем я нажал OK, чтобы сохранить новую системную переменную, и это новое значение (это путь к swt.jar), закрытая и вновь открытая Android Studio и AVD запущен!

Надеюсь, что это поможет

Ответ 7

Была та же проблема при попытке открыть 'uiautomatorviewer.bat'. Чтобы исправить это, я добавил переменную среды ANDROID_SWT, а также добавил папку android_sdk/tools в PATH.

Мне не удалось увидеть изменения, пока я не открыл CMD.

Ответ 8

Это решило мою проблему:

Откройте find_java.bat в папке \sdk\tools\lib, в строке 27.

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

удалите пробел между arch_ext=32 и ||, например arch_ext=32||, снова запустите cmd, и все инструменты будут работать нормально.