开发者

android SDK issue - does not find java/swt - windows 7 x64

Hey guys, I have been trying for at least 2 weeks now to get the SDK manager running on my computer, it ran once at the very beginning then never again. I played around a bit, set my environment variables. Being fairly new to the whole concept, I am at a loss.

I'll provide the android.bat and find_java.bat files along side general locations to my Java, SDK and JDK


I'm running Windows 7 x64, and I've both JRE's (32 and 64) as well as the 32bit JDK, the 64 bit SDK wouldn't allow me to run anything but removing it and using the 32 bit one solved one issue, but didn't really do anything.


The android.bat is as follows

@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      ://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   ://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

Locations of files are as follows ->

Android SDK r10             :  C:\android-sdk-windows
Java JDK 32 6 u_24 1.6.0_24 :  C:\Program Files (x86)\Java\jdk1.6.0_24
Java JRE 32 6 u_24          :  C:\Program Files (x86)\Java\jre6
Java JRE 64 6 u_24          :  C:\Program Files\Java\jre6

Find_java.bat is as follows

@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 This script is called by the other batch files to find a suitable Java.exe
rem to use. The script changes the "java_exe" env variable. The variable
rem is left unset if Java.exe was not found.

rem Useful links:
rem Command-line reference:
rem   htp://technet.microsoft.com/en-us/library/bb490890.aspx

rem Check we have a valid Java.exe in the path. The return code will
rem be 0 if the command worked or 9009 if the exec failed (program not found).
rem Java itself will return 1 if the argument is not understood.
set java_exe=java
%java_exe% -version 2>nul
if ERRORLEVEL 1 goto SearchForJava
goto :EOF


rem ---------------
:SearchForJava
rem We get here if the default %java_exe% was not found in the path.
rem Search for an alternative in %ProgramFiles(x86)%\Java\bin\java.exe

echo.
echo WARNING: Java not found in your path.

rem Check if there's a 64-bit version of Java in %ProgramW6432%
if not defined ProgramW6432 goto :Check32
echo Checking if it's installed in %ProgramW6432%\Java instead (64-bit).

set java_exe=
for /D %%a in ( "%ProgramW6432%\Java\*" ) do call :TestJavaDir "%%a"
if defined java_exe goto :EOF

rem Check for the "default" 32-bit version
:Check32
echo Checking if it's insta开发者_StackOverflow社区lled in %ProgramFiles(x86)%\Java instead.

set java_exe=
for /D %%a in ( "%ProgramFiles(X86)%\Java\*" ) do call :TestJavaDir "%%a"
if defined java_exe goto :EOF

echo.

echo ERROR: No suitable Java found. In order to properly use the Android Developer
echo Tools, you need a suitable version of Java JDK installed on your system.
echo We recommend that you install the JDK version of JavaSE, available here:
echo   
echo.
echo You can find the complete Android SDK requirements here:
echo   
echo.
goto :EOF

rem ---------------
:TestJavaDir
rem This is a "subrountine" for the for /D above. It tests the short version
rem of the %1 path (i.e. the path with only short names and no spaces).
rem However we use the full version without quotes (e.g. %~1) for pretty print.
if defined java_exe goto :EOF
set full_path=%~1\bin\java.exe
set short_path=%~s1\bin\java.exe

%short_path% -version 2>nul
if ERRORLEVEL 1 goto :EOF
set java_exe=%short_path%

echo.
echo Java was found at %full_path%.
echo Please consider adding it to your path:
echo - Under Windows XP, open Control Panel / System / Advanced / Environment Variables
echo - Under Windows Vista or Windows 7, open Control Panel / System / Advanced System Settings / Environment Variables
echo At the end of the "Path" entry in "User variables", add the following:
echo   ;%full_path%
echo.

Find_java.bat won't find my JDK and I have tried more than one thing, setting the environment paths as well as changing the .bat file according to some fixes that I found searching the Web and especially here.

The android.bat file, won't locate Java and the .swt file and therefore won't load.

Can anyone help me start the Android SDK?


The best possible solution to this issue is:

SET ENV_VARIABLES for NAME: ANDROID_SWT path to the windows 64 bit path VALUE i.e android_sdk_directory_path/toolss/lib/x86_64\

OR Else

install 32 bit JDK for the system and then install the Android SDK tools


I had also some problems a few days ago with the Java versions on win7 x64.
The solution for me was to delete all java version und just install the x64 JDK. If U want, also the JRE, but when I mixed up both I started to get some problems.

The Oracle website still keeps telling me i don't have Java installed, but eclipse and the android SDK is working fine with it.

Only using JUnit I keep getting errors.


i get the same problem, i had add all needed directories in my environment PATH but the android.bat does not working !

I added this line :

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

after this lines in my 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

the android.bat and SDK Manager.exe run correctly now :D !

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜