Android SDK / Android.bat не находит файл SWT.jar - PullRequest
10 голосов
/ 23 марта 2011

Это продолжение проблемы Менеджер 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

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

При запуске менеджера SDK Android черный командный экран быстро мигает и исчезает, он не запускает 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'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

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 к моим переменным Path, теперьоставшаяся проблема - запуск командной строки 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>

Ответы [ 8 ]

6 голосов
/ 17 июля 2011

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

3 голосов
/ 29 мая 2012

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

Наконец-то я решил эту проблему, переименовав папку java и android sdk без пустого символа.

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

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

0 голосов
/ 13 февраля 2015

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

Открыть 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, и все инструменты будут работать нормально.

0 голосов
/ 09 ноября 2014

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

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

0 голосов
/ 05 октября 2014

Я использую Android Studio x64 на Windows 8.1 Pro x64. С установленным JDK 8 x64.

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

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

C: .... \ Android-студия \ SDK \ Tools \ Lib \ x86_64 \ swt.jar

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

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

0 голосов
/ 16 октября 2013

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

0 голосов
/ 09 июля 2012

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

0 голосов
/ 07 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...