Android SDK и AVD Manager не будут работать

Я установил Android SDK, но не могу его использовать, потому что AVD и SDK Manager не работают. Когда я пытаюсь открыть любой из них, окно командной строки появляется примерно на полсекунды, а затем закрывается. Я попытался запустить exe из командной строки, чтобы увидеть, было ли сообщение об ошибке, но нет вывода, и он действует так же. Я исследовал проблему и обнаружил, что то же самое происходит с другими компьютерами. Я попробовал некоторые из решений, которые были размещены там:

Solutions that didn't seem to work Adding the JDK location to the beginning of the PATH environment variable Adding the Android SDK location to the PATH environment variable Running the applications as an administrator Deleting the .android folder from the user (C:/Users/[User Name]) directory Installing in the root of the C: drive, instead of in Program Files

Информация об ОС: Windows 7 Home Premium, права администратора

Update

Я думаю, что нашел источник проблемы, но я все еще не знаю, как ее исправить. Проблема, кажется, с моимandroid.bat файл вC:\Android\android-sdk\tools каталог. Пытается позвонитьfind_java.bat но не может из-за небольшой синтаксической проблемы. Это вывод:

& amp; C: \ Android \ ANDROI ~ 1 \ tools \ lib \ find_java.exe -s & apos; не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.

ERROR: No suitable Java found. In order to properly use the Android Developer Tools, you need a suitable version of Java JDK installed on your system. We recommend that you install the JDK version of JavaSE, available here: http://www.oracle.com/technetwork/java/javase/downloads

You can find the complete Android SDK requirements here: http://developer.android.com/sdk/requirements.html

После некоторых измененийandroid.batЯ смог заставить его позвонитьfind_java.batкоторый, в свою очередь, получил кучу ошибок, независимо от того, что я с ним сделал. Я, наконец, расстроился и решил жестко кодировать в расположенииjava.exe, Позже в командном файле была еще одна ошибка. Я начинаю думать, что что-то действительно не так с моей установкой или командным файлом. Это командный файл (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 %%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\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
    copy /B /D /Y lib\swtmenubar.jar     %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\commons-logging*   %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\commons-codec*     %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

    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
Update (again)

Я установил Android SDK на WinXP, работающем в virtualbox, и он работает отлично. Я все же предпочел бы использовать его на Win7.

 Vit Khudenko13 июн. 2012 г., 23:02
На всякий случай: вы используете JDK 6? Я где-то читал, что он не будет работать на JDK 7, это должен быть JDK 6 для запуска Android SDK.
 lopsided9814 июн. 2012 г., 01:56
@ Arhimed Я попробовал это решение (вы правы, на сайте Android SDK написано, что он использует JDK6), но, к сожалению, оно, похоже, ничего не изменило.

Ответы на вопрос(13)

не удалось открыть диспетчер Android SDK, но, удалив папку .android из каталога пользователя (C: / Users / [Имя пользователя]), он работает ...

Спасибо

 lopsided9807 февр. 2013 г., 01:28
Как я сказал в своем вопросе, я уже попробовал это.

которую Раджеш обнаружил в своем комментарии выше. Команда в круглых скобках в этой строке не выполнялась

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

Изменить: некоторые люди могут иметь эту строку: для / f "delims =" %% a in (& quot;% ~ dps0find_java% arch_ext% .exe & quot; -s & apos)) установить java_exe = %% a

Эта строка изfind_java.bat вtools\lib\ Каталог СДК.

У меня есть система Win 7 x64, и я не собираюсь перезагружать всю ОС, поэтому я жестко закодировал то, что MZB предложил из его поста выше:

После этой строки:

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

изменить: или эту строку:

для / f "delims =" %% a in (& quot;% ~ dps0find_java% arch_ext% .exe & quot; -s & apos)) установить java_exe = %% a

Я добавил эту строку:

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

Предполагается, что для переменной среды JAVA_HOME задана папка Java JDK (без\bin)

Если ваша переменная JAVA_HOME содержит\bin затем установите это так:

set java_exe=%JAVA_HOME%\java.exe

Если у вас нет установленной среды JAVA_HOME, вам нужно жестко закодировать ее, указав фактический путь на вашем компьютере, как это сделал MZB в своем посте.

Я также сделал это для логики JavaScript:

set javaw_exe=%JAVA_HOME%\bin\javaw.exe

Я наконец могу получить доступ к SDK Manager.

ОБНОВЛЕНИЕ 01/01/2015:

Кену Y-N, который обновил этот пост после того, как я отправил его:

Когда я создал этот пост, я ссылался на эту строку:

для / f "delims =" %% a in (& amp; qu, ot;% ~ dps0find_java% arch_ext% .exe & quot; -s & apos;) действительно устанавливают java_exe = %% a

Это в моем текущем find_java.bat из папки ... \ sdk \ tools \ lib, который я только что обновил вчера из текущей версии Android Studio для Windows x64 (android-studio-bundle-141.1903250-windows.exe). переменная% arch_ext% будет иметь 32 или 64 в зависимости от того, какая система у них есть.

Но я не знаю, как приведенная выше строка была преобразована в:

для / f "delims =" %% a in ("a"% java_exe% "-jar lib \ archquery.jar") установите swt_path = lib \ %% a

после того, как Кен Y-N сделал редактирование.

Но, возможно, некоторые люди имеют вашу версию в своем файле find_java.bat, но я думаю, что у некоторых есть другая, как у меня. Я просто указываю на это тем, у кого возникла проблема с невозможностью открыть диспетчер SDK.

Кроме того, я должен отметить, что у меня была эта проблема как с JDK1.7, так и с JDK1.8. Первоначально я установил JDK1.8, но вчера, читая требования для Android Studio, он сказал, что JDK1.7 требуется, поэтому вчера вечером я установил JDK1.7, думая, что это решит мою проблему, но проблема с find_java.bat была той же. с любой версией JDK.

Я также должен отметить, что когда я установил Android Studio с обеими версиями JDK, у меня была возможность получить доступ к SDK Manager до того, как я впервые открыл Android Studio. Но когда я открыл Android Studio, он начал сначала обновлять SDK Manager и, возможно, именно тогда, когда возникает проблема, потому что после запуска проекта IDEA я не мог открыть SDK Manager после этого.

Поэтому, возможно, find_java.bat имеет следующую строку ДО первого запуска Android Studio:

для / f "delims =" %% a in ("a"% java_exe% "-jar lib \ archquery.jar") установите swt_path = lib \ %% a

А когда Adroid Studio обновляет SDK, он имеет эту строку?

для / f "delims =" %% a in (& quot;% ~ dps0find_java% arch_ext% .exe & quot; -s & apos)) установить java_exe = %% a

У меня нет времени, чтобы проверить это - я уже потерял так много времени, пытаясь выяснить, как получить доступ к SDK. Может быть, кто-то другой может подтвердить это, если у него возникла та же проблема.

и она решается с помощью Android Studio в качестве администратора

Решение Вопроса

Я установил новую версию JDK для x64, и это исправило мою проблему

 lopsided9801 дек. 2012 г., 20:18
Это будет jdk7u9?
 lopsided9801 дек. 2012 г., 20:27
Это наконец работает! Благодарю.

просто запустите AVD Manager или SDK Manager от имени администратора.

Add the JAVA_HOME environment variable and set it to your java install location (i.e. C:\Program Files (x86)\Java\jdk1.6.0_39\bin)

Next edit C:\Users{YOUR USERNAME}\AppData\Local\Android\android-sdk\tools\android.bat Find the set java_exe= call lib\find_java.bat line and change it to set java_exe=java.exe

Save the file and it should run

Note если вы получаете ошибку о местоположении SWT, просто жестко закодируйте путь. Установите его в lib \ x86 или lib \ x86_64

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

должно принести много пользы вашей работе.

Предварительные приветствия. Пракаш.

как lopsided98, и попробовал все решения здесь, но безрезультатно. потом я вспомнил, что мне нужно было добавить переменную окружения, чтобы найти java, прежде чем я смог запустить Android Studio, поэтому я просто попытался добавить новую системную переменную дляAndroid_home и направил его в мою папку AndroidC:\Program Files (x86)\Android , Точно так же, как я сделал при настройке Java, а затем все началось без проблем. Менеджер SDK также работает и работает. Надеюсь, это поможет, если у вас все еще есть проблемы

Это было то, что я нашел при настройке Java-части и просто подумал, что могу попробовать и для Android.

В некоторых системах Windows скрипт запуска не находит место установки Java. Если вы столкнулись с этой проблемой, вам нужно установить переменную среды, указывающую правильное местоположение.

Select Start menu > Computer > System Properties > Advanced System Properties.

Тогда откройAdvanced tab > Environment Variables и добавьте новую системную переменнуюJAVA_HOME который указывает на вашу папку JDK, например

C:\Program Files\Java\jdk1.7.0_21.

и проблему до конкретное утверждение for /f "delims=" %%a in ('"%~dps0\find_java.exe" -s') do set java_exe=%%a  в файле find_java.bat.

По какой-то причине инструкция в скобках не выполнялась как команда.  Я опробовал все предложенные решения выше, но ни одно из них не сработало. В конце концов выяснилось, что этот конкретный оператор отлично работал на другом 64-битном компьютере с Windows 8, поэтому возникла проблема с моей установкой Windows 8. Я проверил системные файлы своей ОС и обнаружил, что некоторые из них были повреждены, поэтому я восстановил установку Windows 8, и после этого все работало нормально.

с использованием и новой установки 64-битной JDK.

Решение Кентона Прайса в этом посте исправило меня, и теперь все работает отлично.

Установка Android SDK не находит JDK

по какой-то причине (изначально разработанный Linux) ADK в моей системе нуждался в JAVA_HOME, определенном прямой косой чертой в стиле Linux вместо обратной косой черты в стиле Windows.

 lopsided9814 июн. 2012 г., 13:02
Я пытался заменить обратные косые черты на прямые, но, похоже, они тоже ничего не делали.
 lopsided9805 июл. 2012 г., 19:15
Я переустановил ADK, а затем попытался изменить обратную косую черту на прямую, и она все еще не работала. :(
 05 июл. 2012 г., 14:12
блин ... неужели все взломы, которые ты совершил, сломали что-то еще? моя установка win764 довольна ADK, так что он может работать как-то ... рад, что у вас что-то работает. Насколько хорошо работает ADB с виртуальной машины на устройство Android? (или вы просто используете эмулятор?)
 09 июл. 2012 г., 02:36
Вы пробовали использовать только 32-битную Java? Я знаю, что это своего рода признание поражения, но, насколько я понимаю, это будет работать на Win7, и, вероятно, будет меньше хлопот, чем переход на 32-битную виртуальную машину с 32-битной Java. (Я просто решил бороться с нерабочим набором инструментов, используя 64-битную установку Java, потому что я был взволнован окончательно установкой 64-битной системы и не хотел отказываться от использования полного 64-битного программного обеспечения, где это возможно)

блема была в<AndroidSDK>\tools\lib\find_java.bat (Спасибо всем, кто указал на этот файл). Он искал 64-битную версию Java, в то время как у меня была установлена 32-битная версия. Просто и грязноset arch_ext=32 вfind_java.bat решил проблему для меня.

D:\dev\adt-bundle-windows-x86_64-20130522\sdk>"tools\lib\find_java.exe"
C:\Windows\system32\java.exe

Я смутно помню, что давным-давно у меня была проблема с программой, находящей Java и копирующей ее в каталог system32 для «разрешения». Это.

Я удалил эти файлы и теперь:

D:\dev\adt-bundle-windows-x86_64-20130522\sdk>"tools\lib\find_java.exe"
C:\Program Files\Java\jre7\bin\java.exe

и менеджер SDK / ADK теперь работают правильно.

которая не может определить местоположение исполняемых файлов java.exe и javaw.exe.

Обходной путь здесь:http://www.gmansoft.com/android-sdk-manager-find-java-problem/ работал на меня. Обратите внимание, что если вы "исправите" проблема в android.bat других пакетных файлов все еще будет сломана.

В случае разрыва вышеупомянутой ссылки, временное решение заключается в том, чтобы связать результаты команды find_java.bat, чтобы вернуть фактическое местоположение исполняемых файлов java. например отредактируйте это так:

rem Check we have a valid Java.exe in the path. The return code will
rem be 0 if the command worked or 1 if the exec failed (program not found).
rem for /f "delims=" %%a in ('"%~dps0\find_java%arch_ext%.exe" -s') do set java_exe=%%a
set java_exe=c:\program files\Java\jdk1.8.0_25\bin\java.exe
if not defined java_exe goto :CheckFailed

:SearchJavaW
rem Check if we can find a javaw.exe at the same location than java.exe.
rem If that doesn't work, just fall back on the java.exe we just found.
rem for /f "delims=" %%a in ('"%~dps0\find_java%arch_ext%.exe" -s -w') do set javaw_exe=%%a
set javaw_exe=c:\program files\Java\jdk1.8.0_25\bin\javaw.exe
if not exist "%javaw_exe%" set javaw_exe=%java_exe%
goto :EOF

Ваш ответ на вопрос