Менеджер SDK не находит Java - PullRequest
8 голосов
/ 23 марта 2011

Эй, ребята, Кажется, что я постоянно не могу решить проблему под рукой, и моя голова постоянно становится все более или более изогнутой.

Проблема в том, что мой менеджер SDK не может найти ни мою Java, ни мой SWT-файл.

Я использую 64-разрядную версию Windows 7, и мой SDK, Java, SWT расположены следующим образом.

Java JDK  -  C:\Program Files\Java\jdk1.6.0_24
Java location  -  C:\Program Files\Java\jdk1.6.0_24\jre\bin
SDK manager -  C:\android-sdk-windows

Я изучаю кодирование в первый раз, я уже все перепробовал. Установите правильные пути, которые указывает менеджер SDK, даже попытались установить несколько, изменить пакетные файлы, и список можно продолжить.

Есть идеи?

Хаотичный андроид


Хорошо, так удалил установщик, установил пути, вот что я получаю

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)

Установите в правильных условиях и получите это

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)`

Мой файл 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

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`

переменные такие же

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

Ответы [ 6 ]

4 голосов
/ 13 января 2014

В случае, если кто-то из вас все еще не может найти решение.Сделай это.Это сработало для меня.В вашем Android SDK chagne tools / android.bat и tools / lib / find_java.bat как

(find_java.bat)

для / f "delims ="%% a in ('"% ~ dps0 \ find_java.exe" -s') установите java_exe = %% a в

, установите java_exe = C: \ PROGRA ~ 1 \ Java \ JDK17 ~ 1.0_4 \ bin\ java.exe и

для / f "delims =" %% a in ('"% ~ dps0 \ find_java.exe" -s -w') устанавливают javaw_exe = %% a в

set javaw_exe = C: \ PROGRA ~ 1 \ Java \ JDK17 ~ 1.0_4 \ bin \ javaw.exe

(android.bat)

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

set swt_path = lib \ x86 (моя система - 32немного, поэтому я поставил x86, если ваша система 64, тогда вы должны поставить \ x86_64)

надеюсь, это будет работать и для вас.

3 голосов
/ 25 марта 2014

У меня была та же проблема, что случилось на моей машине, так это то, что xcopy не был распознан.Я решил проблему, добавив путь xcopy в переменную окружения PATH.На моей машине файл xcopy.exe находится в папке windows \ system32, в результате чего (у меня sdk 8, измените на то, что вы используете):

PATH = C: \ Program Files \ Java \ jdk1.8.0\ Bin;% SystemRoot% \ system32

3 голосов
/ 09 февраля 2012

Может быть, это поможет?Я удалил папку .android в C: \ Users \\, и она работает. Установка Android / Проблемы с SDK Manager

2 голосов
/ 23 марта 2011

Вы используете частную JRE для JDK, поскольку ваше местоположение Java предлагает

Java location  -  C:\Program Files\Java\jdk1.6.0_24\jre\bin

Если вы установили общедоступную JRE (которая доступна для всех Java-приложений и не ограничивается JDK), ваше местоположение Java будет примерно таким:

C:\Program Files\Java\jre1.6.0_24\bin

Но менеджер Android SDK может работать с частной JRE.

Попробуйте установить переменную окружения PATH для Java.

См
Как установить или изменить системную переменную PATH? или
Как добавить, удалить или изменить переменные среды в Windows 7?

После установки переменной PATH start SDK Manager.exe

Теперь должно работать.


Редактировать

Вы неправильно указали ПУТЬ

Java JDK  -  C:\Program Files\Java\jdk1.6.0_24
Java location  -  C:\Program Files\Java\jdk1.6.0_24\jre\bin

удалите вышеприведенное PATH и установите PATH как

C:\Program Files\Java\jdk1.6.0_24\bin

Это должно работать. У меня работает на jdk1.6.0_20


Редактировать

Вы читали

Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 64-bit SWT libraries on 32-bit JVM

Установка 64-битного JDK для 64-битной JVM и установите PATH соответственно.


Вопрос теперь становится длиннее.
Пусть этот вопрос адрес Менеджер SDK не находит Java и опубликует другой вопрос со ссылкой на этот вопрос и другую конкретную ошибку, которую вы получите.

0 голосов
/ 21 февраля 2013

Единственное, что мне помогло, это переустановить Java в путь, который не содержал пробелов, поэтому вместо C: / Program Files на C: / Java и измените переменную Path на новое значение.

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

0 голосов
/ 21 июля 2011

Это не проблема пути, вам нужно установить 32 бит JDK, потому что Android SDK только 32 бит.

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